我们可以在一个公共文件中声明@properties

时间:2016-07-20 10:11:51

标签: objective-c properties protocols readonly

我有一个要求,即协议中的readonly属性很少,并且将该协议用于两个类(比如A& B),因为属性为readonly,我将其重新声明为我的两个类(A& B)的.m Files我可以如何避免这两个类中所有属性的重复重新声明?

2 个答案:

答案 0 :(得分:0)

您可以将公共属性定义放入头文件中,并将其包含在每个类的接口中。

公共标题: common-props.h

@property (nonatomic, retain) SomeType *common1;
@property (nonatomic, retain) SomeType *common2;
@property (nonatomic, retain) SomeType *common3;

实施: A.m

@interface A ()

// Note: you have to use include, not import,
// to ensure the contents will be interpolated, no matter what.
#include "common-props.h"

@end

@implementation A

    // Stuff

@end

重复B级。

不建议使用此方法。无论如何,通过我。

答案 1 :(得分:-1)

创建一个类并在该类中声明readonly属性。然后创建继承自该类的类A和B.

所以你的CommonClass.h看起来像这样

#import <Foundation/Foundation.h>
#import <UIKit/UIKit.h>

@interface CommonClass : NSObject

@property (strong, readonly) <Type1> property1;
@property (strong, readonly) <Type2> property2;

@end

现在您可以创建继承自CommonClass

的类A和B.
@interface A : CommonClass
 @interface B : CommonClass