簡體   English   中英

如何在Objective-C中的類別中更改只讀屬性

[英]How to change readonly property in category in objective-c

在我的* .h文件中,我具有只讀的foo屬性。
我通過使用_foo = _foo + 1;更新了該屬性,從而贏得了其他一些公共方法_foo = _foo + 1;

現在,我在該* .h文件上具有類別。
我需要從類別更新foo屬性。

如果我使用_fooUse 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM