为什么使用ivars代替IBOutlets属性?

为什么使用ivars代替IBOutlets属性?

问题描述:

我刚开始工作一个新项目。它有很多的遗留代码,我发现下面的代码为什么使用ivars代替IBOutlets属性?

@interface WLLeftSideViewController : UIViewController { 

@private 
    __weak IBOutlet UIButton *_signInButton; 
    __weak IBOutlet UIButton *_signOutButton; 
    __weak IBOutlet UILabel *_nameLabel; 
    __weak IBOutlet UILabel *_emailLabel; 
    __weak IBOutlet WLLeftSideMenuView *_tableView; 
    __weak IBOutlet UIButton *_settingsButton; 

    __weak IBOutlet NSLayoutConstraint *_heightConstraint; 
} 

我有几个疑点:

  • 什么可以使用专用高德的一个IBOutlet的优势在哪里?
  • 为什么添加__weak?正如我在ARC环境中所了解的,ivars总是很薄弱。

感谢

的关键词这里是传统

  • 没有优势
  • 所有变量(实例变量,而不是),默认情况下为强。