我有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并且工作。谢谢!!! –