【发布时间】:2013-08-24 11:52:15
【问题描述】:
我对属性的理解是,它们只是构造 getter 和 setter 方法。有没有办法创建一个只有 setter 方法的属性?我的问题与Write only property in Objective-C 类似,但看起来唯一给出的解决方案是明确声明和定义一个 setter 方法。这是唯一的方法还是可以通过属性来完成?
【问题讨论】:
标签: ios properties
我对属性的理解是,它们只是构造 getter 和 setter 方法。有没有办法创建一个只有 setter 方法的属性?我的问题与Write only property in Objective-C 类似,但看起来唯一给出的解决方案是明确声明和定义一个 setter 方法。这是唯一的方法还是可以通过属性来完成?
【问题讨论】:
标签: ios properties
如果您要问是否可以让 IOS 自动合成“只写”属性,则不能。但是,您可以显式设置返回 nil 的 getter 方法。
例子:
@property(strong, nonatomic) NSString *myString;
-(NSString *)myString
{
return nil;
}
【讨论】:
@dynamic 来防止合成getter。然后,尝试读取该属性将引发异常,因为 getter 不存在。当然,这需要您提供自己的 setter,但是在您不想要 getter 的情况下,合成的 setter 可能没有用。