@property和@synthesize的使用

2019-03-14  本文已影响0人  henry技术探索记录员

@property的用法:

为什么会自动加上下划线呢?这是因为加上之后可以避免一些冲突。
如:NSString * _name; 如果实现中有一个方法给它赋值,那我可以写成,-(void)setName:name;其中name是我传过来的形参,可阅读性很强。
但如果实例变量中不加下划线,在实现方法中就没法写了, name = name;这句话就没有意义。
但如果加了下划线,则实现方法中是:_name = name;其中_name是实例变量,name是形参。不会造成冲突, 苹果公司也是这么考虑的吧。

@synthesize的用法:

注意:

1、还需要说明的是,点语法不是property和synthesize产生的,而是标准setter和getter方法产生的,因为property和synthesize正好产生了系统标准写法的setter和getter方法,所以就可以用点语法。如果程序员不用property和synthesize,自己实现那个标准写法的setter和getter方法,系统一样认可,也可以使用点语法。

2、synthesize可以省略不写,不写的话,默认产生带下划线的实例变量和实现方法。如果程序员自己大括号中声明了实例变量,property也声明了同样的实例变量,则最好写上synthesize。

上一篇 下一篇

猜你喜欢

热点阅读