我正在使用一本iOS5书籍来学习iOS编程。
@synthesize coolWord;
^ synthesize用于.m文件中的所有属性
我听说在iOS6中不需要合成,因为它会自动为您完成。这是真的?
合成功能对iOS6是否起任何作用?
感谢您的澄清。 :)
最佳答案
Objective-C中的@synthesize只是实现了属性 setter 和 getter :
- (void)setCoolWord:(NSString *)coolWord {
_coolWord = coolWord;
}
- (NSString *)coolWord {
return _coolWord;
}
Xcode 4确实为您实现了这一点(iOS6需要Xcode 4)。从技术上讲,它实现了
@synthesize coolWord = _coolWord
(_coolWord
是实例变量,coolWord
是属性)。要访问这些属性,请同时使用
self.coolWord
设置self.coolWord = @"YEAH!";
和获取NSLog(@"%@", self.coolWord);
还要注意,setter和getter仍然可以手动实现。如果同时实现了setter和getter,则还需要手动包含
@synthesize coolWord = _coolWord;
(不知道为什么这样做)。