我了解 @synthesize window;
与 @property
结合“自动创建”您的 setter 和 getter,但我不确定您分配时会发生什么像
@synthesize searchBar = _searchBar;
这是否意味着我可以在我的方法中简单地使用 _searchBar 而不是 self.searchBar ?
是否可以防止 ivar 名称与此委托(delegate)方法发生冲突:
- (void) searchBar:(UISearchBar *)searchBar textDidChange:(NSString *)searchText
它是否等同于 self.searchBar
而不是 searchBar
或者这两者是否相同?
最佳答案
您的属性几乎总是有一个支持变量。什么
@synthesize searchBar = _searchBar;
does 声明搜索栏的支持变量将被称为 _searchBar
。这允许您将属性名称与变量名称分离。事实上,如果你不使用 @synthesize
,你根本不需要支持变量。
至于为什么人们这样做,每个人都有不同的理由。就个人而言,我这样做是为了
- 避免与变量名冲突
- 明确说明何时使用局部变量和何时使用实例变量。
关于iphone - @synthesize window=_window 有什么作用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5170631/