2014-03-14 54 views
-1

我是相当新的目标c,我想写使用ARC在iOS的7模型类,但我不知道我是否需要synthesize在.m文件。任何人都可以给我一些建议吗?我是否需要使用合成

//user.h 
@interface User : NSObject 
@property(nonatomic, assign) NSInteger age; 
@property(nonatomic, copy) NSString *firstname; 
@property(nonatomic, copy) NSString *lastname; 
@end 

//user.m 
@implementation User 
@synthesize age, firstname, lastname; 
@end 

现在我的问题是:

是对user.m文件的synthesize另一类必要与否,如果(如ViewContoller类),我想读&设置User类的age财产,或firstname/lastname属性?

+0

不需要。使用现代的Objective-C,如果您需要的只是默认属性行为,则无需调用'@ synthesize'。 – rmaddy

回答

3

不需要。现代客观的C编译器会自动为你合成属性。它的编译器功能从LLVM 4.0开始,随Xcode 4.4一起发布。如果你只是想要属性的默认行为,不需要手动@synthesize

+0

非常感谢,我明白了。 –

+0

唯一需要综合的时候是编写自定义访问器方法,但是你仍然需要综合ivar(在'readonly'情况下为getter,在'readwrite'属性的情况下为getter和setter)。但由于大多数时候我们都使用自动合成的存取器方法,因此您不需要手动合成ivar。 – Rob

+2

这个答案其实是错误的。 Xcode完全没有*与它做任何事情。它是生成属性的实例变量和方法的Objective-C编译器。 – rmaddy

相关问题