@interface aaaa (){
NSString *_name;
UIButton *_btn;
}
@property (nonatomic,copy)NSString *name;
@property (nonatomic,strong)UIButton *btn;
@end
这两种方式都在controller中 既然都可以任意在哪儿赋值,任意使用,我想问这两种方式在这种情况下有什么区别?在这样的情况下哪种又比较好?
求解答 一直以来的疑问
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
成员变量主要是适用于iOS5之前的开发,需要程序员手动进行内存管理。iOS5之后(包括iOS5)引入了ARC(Automatic Reference Counting)同过在property中使用strong,weak等标记自动对内存进行管理。也就是说进行iOS5及以后系统版本的开发,可以放心的使用property,而无需对其进行手动的内存管理。property会自动生成setter,getter方法,方便用点语法直接用。
http://blog.devtang.com/blog/2015/03/15/ios-dev-controversy-1/
'@property' 至少可以加修饰符啊
首先你要知道什么是
ClassClass中只有 数据(成员变量) 和 行为(方法)其次你要知道什么是
属性属性 就是针对 某个数据 提供一组 setter` 和 getter
比如
name属性首先 会 建立一个成员变量
NSString* _name其次 会 建立 -(NSString*)name; 这样一个
getter方法和一个 - (void) setName(NSstring*)newName;
setter方法两个方法
这就是属性
至于
当然 这之间还有 @synthesize的事儿 就是如何把属性和数据成员连起来 也就是 name属性对应修改_name成员变量
如果你只建立一个
属性name那么编译器会自动帮你建立 _name成员和 settname和getname方法 并且自动
synthesize