猿问

属性(property)与成员变量(ivar)有什么区别

最近看了很多别人写的example,一直搞不懂为什么很多人同时写属性和成员变量
如下:
@interfaceKKProgressToolbar:UIToolbar{
@private
id__weak_actionDelegate;
UIBarButtonItem*_stopButtonItem;
UIActivityIndicatorView*_activityIndicator;
UILabel*_statusLabel;
UIProgressView*_progressBar;
}
@property(nonatomic,strong)UIBarButtonItem*stopButtonItem;
@property(nonatomic,strong)UIActivityIndicatorView*activityIndicator;
@property(nonatomic,strong)UILabel*statusLabel;
@property(nonatomic,strong)UIProgressView*progressBar;
@property(nonatomic,weak)idactionDelegate;
一般我自己写的时候,直接写@property,然后在m文件中,写上
@synthesizeaaaaa=_aaaaa;
我刚开始学IOS,不知道这个的区别是什么,望有人不嫌弃,指点一二,在此谢过!!!
ABOUTYOU
浏览 262回答 2
2回答

撒科打诨

成员变量主要是适用于iOS5之前的开发,需要程序员手动进行内存管理。iOS5之后(包括iOS5)引入了ARC(AutomaticReferenceCounting)同过在property中使用strong,weak等标记自动对内存进行管理。也就是说进行iOS5及以后系统版本的开发,可以放心的使用property,而无需对其进行手动的内存管理。
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答