-
它们用于区分公共部分和私人部分。.h文件是用于类的公共声明(如API)的头文件,而.m文件是私有实现。
-
当需要在其他文件处调用函数时,只需导入.h文件以供参考。例如,
#import <Foundation / Foundation.h>
-
在.H 文件,我们可以声明类,它可以从外部调用的公共@property:
@property (strong, nonatomic) NSString *username;
这里的@property是指向类为NSString的对象的指针。所有对象都生活在堆中,因此我们需要*。顺便说一句,strong的意思是“在我将这个属性设置为nil之前,保持对象指向内存”。非原子意味着“对这个属性的访问不是线程安全的”,否则编译器将生成锁定代码。
-
在.m文件中,该属性的“getter”和“setter”方法将在场景后面自动生成,以使@property的实例可访问:
@synthesize` 会自动生成 getter 和 setter 的实现方法。
@synthesize username = _username;
注意,默认情况下,支持变量的名称与属性的名称相同,前面有下划线。你不需要编写下述代码,是会自动生成,除非你希望重写该方法并执行其他操作。
- (NSString *) username { return _username; } - (void)setUsername:(NSString *)username { _username = username; }
使用方法
self.username = @"这是改变了之前的内容"; [self setUsername:@"这是改变了之后的内容"]; NSLog(@"看看 :%@", self.username);
-
创建新方法
需要将声明放入.h文件中:
-(int)newMethod:(NameType *)name;
然后在.m文件中引入
- (int)newMethod:(NameType *)name { int num = 0; # something in the method... return num; } //另外,对于私有声明,您可以将以下内容放入.m文件中: @interface username() #private declarations.... @end