当我查看iOS 5开发人员库时,它说我必须为我创建的每个变量包含访问器方法。但是,当我输入
@property (weak, nonatomic) NSString *userName;
但是,我没有看到任何错误,说我需要“getters”和“setter”。我做错了吗?
答案 0 :(得分:2)
Xcode 4.4中的一个新功能是,如果你自己没有提到属性here,它会自动合成属性:
默认情况下,编译器会自动为未实现的@properties调用@synthesize。
答案 1 :(得分:2)
您没有收到有关需要“getters”和“setter”的消息,因为当编译器“合成”该属性时,会为您创建这些访问器方法。你不必担心它们。当编译器遇到@synthesize
指令时(在Xcode 4.4中,即使不再需要),也会为您创建访问器方法。
这在Apple的The Objective-C Programming Language。
的声明属性部分中讨论顺便说一句,当你说你看到一些关于你“必须包含每个变量的访问器方法”的事实时,我认为你在谈论在特定的上下文中需要它。当然,这不是iOS应用中所有变量的一般要求。有时它们很有用。并且有一些iOS功能需要它们。但这不是一揽子规则。