OC中的属性变量

在OC中定义一个类时,如果我们将变量全部作为成员变量都写在大括号里面,由于成员变量默认是protected的,因此在外部需要使用这些变量的时候就会变得很棘手,我们可能想到用get和set方法来获取和设置其中的值,但是若我们为每一个变量都这样做,那么代码就会变得十分冗余,以至于给bug提供藏身之所。因此,objective-c为我们提供了十分有效的解决方案--属性变量。

 @property关键字

@interface Person : NSObject

@property (nonatomic ,strong) NSString * name;

@end

在OC中,属性变量的声明由@property关键字开头,后面的括号中是属性关键字(有关他们的解释在另一篇转载里面),然后后面

就是自己要声明的变量,这里是一个字符串对象name。如此一个属性变量就已经声明完毕。

属性变量为我们简化了哪些工作

1.声明了一个变量,会为我们创建一个带下划线的成员变量  如 _name,在函数的具体实现中我们使用的是成员变量也就是带下划线的,也可以通过self.属性成员来 使用成员变量 如 :self.name。

 2.自动为我们提供了set方法,方法名为set加上属性变量的名称,比如说这里的: setName,所以我们可以直接在main.m文件中直接使用 [对象 setName:@""] 或者 对象 .name 来设置成员变量而不用担心 类名.m文件中没有相关函数的实现,因为编译器通过属性变量已经为我们自动提供了set方法了。

 3.提供了一个get方法 方法名为属性变量名  如 这里的 name,因此,要想获取姓名就只需要 对象 . name就可以了,或者

[对象 getName]。

猜你喜欢

转载自blog.csdn.net/qq_41856760/article/details/81227189