何时合成目标

时间:2014-10-04 19:52:25

标签: objective-c

我很难理解应该合成哪些对象。例如:

@interface DoSomething : UIView

@property (strong, nonatomic) UIColor *frameColor;
@property BOOL toggleScrollability;
- (void) changeBackgroundColorOfView;

@end

.m文件中,应该合成这三个项目中的哪一个?如果我尝试将它们全部合成,是否有任何不利之处?一般来说,你应该合成什么对象的经验法则是什么?

2 个答案:

答案 0 :(得分:3)

前两个是属性;第三种是实例方法。 @synthesize仅适用于媒体资源。

但是,如果您正在为iOS 6或更高版本构建,则根本不需要进行综合。编译器现在已经过去几年自动处理了这个问题。

答案 1 :(得分:0)

您只能合成属性,因此您将无法编写@synthesize changeBackgroundColorOfView

我认为,自从XCode 4开始,你就不必再使用@synthesize了。编译器会在需要时自动添加它,您可以通过在属性名称前添加_来访问它。

在您的示例中,如果您在DoSomething类中,则将访​​问frameColor属性_frameColor,如果不在,则访问doSomethingInstance.frameColor

但是,如果您想要将属性重命名为内部内容,则可以自己添加。

请参阅Apple's reference