<分区>
标签 ios objective-c
<分区>
@interface DZActionView(){
NSString* _name;
}
@interface DZActionView()
@property(strong, nonatomic)NSString* name;
@end
有什么区别? 我只知道如果我使用@property;它生成 getter/setter 方法和一个 _name 属性。
最佳答案
如果你的意思是:
@interface DZActionView(){
NSString* _name;
}
成为您创建属性的第一种方式,并且
@interface DZActionView()
@property(strong, nonatomic)NSString* name;
@end
作为你的第二种方式,那么你误解了 Objective-C 如何使用属性。
第一个方法不是属性,它只是一个实例变量。它不能被其他对象访问。
第二种方式实际上创建了一个属性。在早期版本的 Objective-C 中,您需要为该属性创建一个支持实例变量。这就是您包含的 _name
变量的用途。现在这大部分是自动为您完成的,除非您执行某些需要明确添加的操作。
如果您包含自己的 getter
和 setter
方法(类似于这些):
- (NSString*)name {
return _name;
}
- (void)setName:(NSString*)name {
_name = name
}
然后这些明确引用了您提到的 _name
实例变量,并将其用作支持变量。
关于ios - 这两种在 Objective-C 中创建属性的方式有什么区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39565356/