Ios 什么';这两种方法在Objective-C中创建属性的区别是什么

Ios 什么';这两种方法在Objective-C中创建属性的区别是什么,ios,objective-c,Ios,Objective C,有什么区别? 我只知道如果我使用@property;它生成getter/setter方法和_name属性。如果您的意思是: @interface DZActionView(){ NSString* _name; } @interface DZActionView() @property(strong, nonatomic)NSString* name; @end 作为您创建属性的第一种方式,以及 @interface DZActionView(){ NSString* _

有什么区别? 我只知道如果我使用@property;它生成getter/setter方法和_name属性。

如果您的意思是:

@interface DZActionView(){
    NSString* _name;
}

@interface DZActionView()
  @property(strong, nonatomic)NSString* name;
@end
作为您创建属性的第一种方式,以及

@interface DZActionView(){
    NSString* _name;
}
作为第二种方法,那么您误解了Objective-C如何使用属性

第一个方法不是属性,它只是一个实例变量。其他对象无法访问它

第二种方法实际上创建了一个属性。在Objective-C的早期版本中,需要为属性创建一个支持实例变量。这就是您包含的
\u name
变量的用途。除非您做了一些需要显式添加的事情,否则这通常是自动完成的

如果您包括自己的
getter
setter
方法(类似于这些方法):

然后,它们显式地引用您提到的
\u name
实例变量,并将其用作支持变量。

如果您的意思是:

@interface DZActionView(){
    NSString* _name;
}

@interface DZActionView()
  @property(strong, nonatomic)NSString* name;
@end
作为您创建属性的第一种方式,以及

@interface DZActionView(){
    NSString* _name;
}
作为第二种方法,那么您误解了Objective-C如何使用属性

第一个方法不是属性,它只是一个实例变量。其他对象无法访问它

第二种方法实际上创建了一个属性。在Objective-C的早期版本中,需要为属性创建一个支持实例变量。这就是您包含的
\u name
变量的用途。除非您做了一些需要显式添加的事情,否则这通常是自动完成的

如果您包括自己的
getter
setter
方法(类似于这些方法):


然后,它们显式地引用您提到的
\u name
实例变量,并将其用作支持变量。

第一个不是属性,它只是一个实例变量。第二个是一个属性。说来晚了。但是thx bro。第一个不是属性,它只是一个实例变量。第二个是一个属性。说来晚了。但是说太迟了。但是说太迟了。但是thx兄弟。