【发布时间】:2014-04-23 15:28:50
【问题描述】:
我有 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;
}
如果我尝试为 self.modelProperty 分配一些东西,我会收到一个构建错误,说我不能,因为它是一个只读属性。但是我为它的属性分配了一些东西,它 XCode 没有给出任何错误,即self.modelProperty.arrayA = sampleArray 构建得很好。但是,当我调试它并打印 self.modelProperty.arrayA 时,即使 sampleArray 中有数据,我也会得到 nil。
问题:是否可以为只读对象的属性赋值?
【问题讨论】:
-
您所做的一切都很好。但是,如果
self.modelProperty是nil,您将看到您得到的结果。确保modelProperty有一个值。仅供参考,将私有属性设置为只读有点不寻常。通常,您会将公共属性设为只读,然后在类扩展中将其设为可读写,以便类可以使用它。 -
是的,你们都是对的。我为 modelProperty 分配了一些东西并且可以工作。谢谢!!!
标签: ios objective-c readonly