Xcode中的Getter和Setter没有问题

时间:2012-09-02 22:16:22

标签: ios xcode

当我查看iOS 5开发人员库时,它说我必须为我创建的每个变量包含访问器方法。但是,当我输入

@property (weak, nonatomic) NSString *userName;

但是,我没有看到任何错误,说我需要“getters”和“setter”。我做错了吗?

2 个答案:

答案 0 :(得分:2)

Xcode 4.4中的一个新功能是,如果你自己没有提到属性here,它会自动合成属性:

  

默认情况下,编译器会自动为未实现的@properties调用@synthesize。

答案 1 :(得分:2)

您没有收到有关需要“getters”和“setter”的消息,因为当编译器“合成”该属性时,会为您创建这些访问器方法。你不必担心它们。当编译器遇到@synthesize指令时(在Xcode 4.4中,即使不再需要),也会为您创建访问器方法。

这在Apple的The Objective-C Programming Language

的声明属性部分中讨论

顺便说一句,当你说你看到一些关于你“必须包含每个变量的访问器方法”的事实时,我认为你在谈论在特定的上下文中需要它。当然,这不是iOS应用中所有变量的一般要求。有时它们很有用。并且有一些iOS功能需要它们。但这不是一揽子规则。