参见英文答案 >
Should IBOutlets be strong or weak under ARC?11个
可以像这样创建出口
可以像这样创建出口
@interface SearchViewController : UIViewController<UISearchBarDelegate> { IBOutlet UIView *viewSearchBar; IBOutlet UIScrollView *scrollVieww; IBOutlet UILabel *lblName; }
也喜欢这个
@interface SearchViewController : UIViewController<UISearchBarDelegate> { } @property(nonatomic,weak) IBOutlet UIScrollView *scrollVieww; @property(nonatomic,weak) IBOutlet UIView *viewSearchBar; @property(nonatomic,weak) IBOutlet UILabel *lblName; @end
我知道ARC中的非原子/原子强/弱,但在第一个例子中它们是什么?强,弱,非原子或原子.
请解释或链接我的一些细节.
解决方法
默认情况下,ARC下的实例变量很强.它们既不是原子也不是非原子,因为它们只是实例变量而不是存取方法.原子/非原子标志与多线程有关.它们指定访问器方法是否应该是原子的.当访问器是原子的时,执行不能更改为访问器方法中间的其他线程.当它是非原子的时,没有这样的限制.
注意:IBOutlet是一个什么都没有的typedef.它只是Interface Builder的标志,没有与内存相关的功能.