我在.h文件中声明了一个只读属性
@property (nonatomic, strong, readonly) NSArray *itemsArray;
我在.m文件中实现了getter方法
- (NSArray *)itemsArray {
return [[self dataArray] copy];
}
现在,我不能使用_itemsArray更改它,为什么会这样?如果我没有实现getter方法,我可以使用_itemsArray来改变它。
答案 0 :(得分:1)
您已为您的媒体资源实施了所有必需的访问者(如果是readonly属性,则为getter)。在这种情况下,下划线ivar不会自动合成。
答案 1 :(得分:0)
简而言之,您无法更改自己的价值,或者无法将{strong> setter 方法应用于readonly
属性。
答案 2 :(得分:0)
我认为readonly属性不实现setter方法,因此不会创建itemsArray属性映射的iVar。另一方面,此属性映射的iVar名称未定义。如果要使用'_itemsArray'作为属性的iVar名称。将' @synthesize itemsArray = _itemsArray;' 语句写入.m文件后。没有发生错误。