4
我有一個包含字典JSONData
的對象。從頭文件和其他將訪問它的類中,我希望此屬性只能是隻讀和不可變的。如何在頭文件(.h)中實現不可變的只讀屬性,實現中的可變讀寫屬性(.m)
@interface MyObject : NSObject
@property (readonly, strong, nonatomic) NSDictionary *JSONData;
@end
不過,我需要它是readwrite
,並從實現文件可變的,像這樣的,但是這並不工作:
@interface MyObject()
@property (readwrite, strong, nonatomic) NSMutableDictionary *JSONData;
@end
@implementation MyObject
// Do read/write stuff here.
@end
有什麼我可以做強制執行的那種抽象我要去?我看了其他問題,雖然我已經知道如何從.h
和readwrite
開始 .m
,我找不到任何關於可變性的區別。
這就是答案。 – gran33
是的,我實際上也找到了自己的解決方案。注意:**不要在實現中的任何位置使用'self.rawData [@「key」] = @「value」',因爲它不起作用。 '_rawData [@「key」] = @「value」'但是,因爲你正在訪問實例變量而不是屬性(被聲明爲不可變)。我真的需要重寫getter嗎? –
是的。你正在返回一個不同類的對象。 – Mundi