我正在使用一本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;(不知道为什么这样做)。

09-30 11:55