我有2類作爲每下面:分配值到一個只讀對象的屬性
類ModelA.h
@interface ModelA : NSObject
@property (nonatomic, strong) NSArray *arrayA;
@end
類ControllerA.m
@interface ControllerA()
@ property (nonatomic, copy, readonly) ModelA *modelProperty;
@end
@implementation ControllerA
- (void)someMethod:(NSArray *)sampleArray
{
self.modelProperty.arrayA = sampleArray;
}
如果我t ry給self.modelProperty分配一些東西,我得到一個構建錯誤,說我不能,因爲它只是一個只讀屬性。但是我給它的屬性指定了一些東西,XCode並沒有給出任何錯誤,即self.modelProperty.arrayA = sampleArray
只是建立好了。但是,當我通過它進行調試並打印self.modelProperty.arrayA
即使sampleArray中有數據,我也會得到零。
問題:是否可以爲readonly對象的屬性賦值?
你在做什麼是完全沒問題的。但是,如果'self.modelProperty'爲'nil',你會看到你得到的結果。確保'modelProperty'有一個值。僅供參考,以私有財產爲只讀是不尋常的。通常情況下,你會讓公共屬性爲只讀,然後在類擴展中進行讀寫,以便課程可以使用它。 – rmaddy
是的,你們都是對的。我分配了一些東西給modelProperty並且工作。謝謝!!! –