[英]How to change readonly property in category in objective-c
在我的* .h文件中,我具有只读的foo
属性。
我通过使用_foo = _foo + 1;
更新了该属性,从而赢得了其他一些公共方法_foo = _foo + 1;
现在,我在该* .h文件上具有类别。
我需要从类别更新foo
属性。
如果我使用_foo
则Use of undeclared identifier '_foo''
如果我使用self.foo = 5
那么我将Assignment to readonly property
我知道可以通过将foo
属性设置为readwrite来解决此问题,但我想避免这种情况。
题
怎么解决呢?
也可以将属性从类外部设置为只读,但从类和类别内部设置为readwrite?
那将解决这个问题。
您还可以在头文件中声明属性的支持实例变量,以便编译器可以在类别中查看它:
@interface MyClass : NSObject
{
int _foo;
}
@property (readonly) int foo;
@end
明确声明此变量将用于支持属性(仅出于安全考虑):
@implementation MyClass
@synthesize foo = _foo;
...
@end
然后在类别中引用_foo
应该可以正常工作:
@implementation MyClassCategory
- (void)someMethod
{
_foo++;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.