Instance variables 实例变量
实例变量有一点像 Swift 里的属性,但是在 Objective-C 里面更简单一些。
它是一个很好的学习切入点,所以我们就从这里开始啦~
我们再来调整一下 Person.h 文件里面的 Person 类,给它加上一个 name 实例变量:
@interface Person : NSObject {
@public
NSString *name;
}
- (void)printGreeting;
@end
同时我也重写了 printGreeting 方法,它现在已经不用不需要任何的参数了。我们等一下就可以把实例变量用进去。
但是首先呢,我们还是要来仔细的看一下它的语法。
当我们创建一个实例变量的时候,我们需要一对花括号,写在 @interface 这一行后面,然后把你需要的实例变量依次列出来花括号里。你需要声明它的数据类型和变量名称,确实有一点像我们在 Swift 里写属性。
但是请注意,我在前面写了一个 @public,如果不写这个的话,它就不再是一个全局的变量了,只能在这个类的内部被访问到。
接着,到 Person.m 文件里来重写一下 printGreeting 方法:
@implementation Person
- (void)printGreeting {
NSLog(@"Hello, %@!", name);
} @end
如果你要在 main.m 给这个实例变量赋值的话,你需要用到 -> 这个符号:
Person *person = [Person new];
person->name = @"Taylor";
[person printGreeting];