可以像这样创建出口
@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中的nonatomic
/ atomic
strong
/ weak
,但在第一个示例中,它们是什么? strong
,weak
,nonatomic
或atomic
。
请向我解释或链接一些细节。
答案 0 :(得分:7)
默认情况下,ARC下的实例变量强。它们既不是原子也不是非原子,因为它们只是实例变量而不是存取方法。原子/非原子标志与多线程有关。它们指定访问器方法是否应该是原子的。当访问者是原子的时,执行不能改变访问者方法中间的其他线程。如果它是非原子的,则没有这种限制。
注意: IBOutlet是一个什么都没有的typedef。它只是Interface Builder的标志,没有与内存相关的功能。
答案 1 :(得分:5)
默认情况下,变量是__strong在ARC下:
IBOutlet UIView *viewSearchBar;
与
相同 IBOutlet __strong UIView *viewSearchBar;
关于在ARC下处理IBOutlets的推荐方法,请参阅: the answer to this
答案 2 :(得分:3)
一般的经验法则,任何带IBOutlet
的东西都应该被宣布为弱。