Objective-C类别:我可以为不属于我的类别的方法添加属性吗?

Ale*_*yne 28 properties objective-c categories

我想使用一个类别来创建原始类的方法作为属性.

A类:

@interface ClassA
- (NSString*)foo;
@end
Run Code Online (Sandbox Code Playgroud)

A类

@interface ClassA (Properties)
- (void)someCategoryMethod;
@property (nonatomic, readonly) NSString *foo;
@end
Run Code Online (Sandbox Code Playgroud)

现在,当我这样做时,它似乎工作(编辑:也许它不起作用,它不抱怨,但我看到奇怪),但它给了我警告,因为我没有合成我的类别实现中的属性.我怎么告诉编译器一切都很好,因为原来的类为我合成了属性?

cod*_*ior 32

这是你得到的警告:

warning: property ‘foo’ requires method '-foo' to be defined - use @synthesize, @dynamic or provide a method implementation

要禁止此警告,请在您的实现中执行此操作:

@dynamic foo;