在Objective-C中,有一种类似于hack的方法可以创建私有方法,在.m文件中:
这会导致编译警告:类别 'PrivateMethods' 中声明的属性不能在类实现中实现。我试图将我的属性移动到一个类别中:
@interface FooClass (PrivateMethods)
- (void) doBar:(id)barAction withBaz:(id)bazAction;
@end
这对于方法非常有效。我尝试对属性进行相同的操作:
@interface BarClass (PrivateMethods)
@property (nonatomic, strong) BazObject *myBaz;
@end
@implementation BarClass
@synthesize myBaz = _myBaz;
[...]
@end
这会导致编译警告:类别 'PrivateMethods' 中声明的属性不能在类实现中实现。我试图将我的属性移动到一个类别中:
@implementation BarClass (PrivateMethods)
@synthesize myBaz = _myBaz;
@end
那么: @synthesize 不允许在类别的实现中使用。
显而易见的答案是“放弃尝试,只使用实例变量”,但我曾被苹果公司的人告知他们已经(个人)完全使用属性。它们带来的安全性(像枪上的安全装置,使自己不容易误伤)让我内心感到非常愉悦,所以有没有任何方法可以在不使用裸露的实例变量的情况下实现这一点?