Web*_*ode 2 objective-c ios objective-c-category
在我的*.h文件中,我有foo一个readonly属性.
我通过使用更新该属性赢得一些其他公共方法_foo = _foo + 1;
现在我在*.h文件上有类别.
我需要foo从类别更新属性.
如果我使用_foo然后我得到Use of undeclared identifier '_foo''
如果我使用self.foo = 5然后我得到Assignment to readonly property
我知道我可以通过将foo属性设置为readwrite 来解决这个问题,但我想避免这种情况.
问题
如何解决?
也可以从类外部将属性设置为只读,但是从类和类别中读取是否可以?
那样可以解决这个问题.
您也可以在头文件中声明属性的支持实例变量,因此编译器可以在类别中看到它:
@interface MyClass : NSObject
{
int _foo;
}
@property (readonly) int foo;
@end
Run Code Online (Sandbox Code Playgroud)
明确声明此变量将用于支持该属性(仅用于安全性):
@implementation MyClass
@synthesize foo = _foo;
...
@end
Run Code Online (Sandbox Code Playgroud)
然后_foo在类别中引用应该工作正常:
@implementation MyClassCategory
- (void)someMethod
{
_foo++;
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1771 次 |
| 最近记录: |