bda*_*iel 14 properties objective-c
我有一种情况,我不希望为一组属性合成实例变量(我通过用户默认值和钥匙串管理它们).
如果我有以下内容,_loginUsername肯定会合成:
@property (nonatomic, readonly) NSString *loginUsername;
Run Code Online (Sandbox Code Playgroud)
而且我知道如果我有以下内容,则不会合成实例变量,因为声明是"我将自己照顾它":
@property (nonatomic, getter = loginUsername, setter = setLoginUsername) NSString *loginUsername;
Run Code Online (Sandbox Code Playgroud)
对于具有自定义getter的readonly属性,行为是否相同?:
@property (nonatomic, readonly, getter = loginUsername) NSString *loginUsername;
Run Code Online (Sandbox Code Playgroud)
_loginUsername最终的财产申报会有合成吗?我很确定不会,但我正在努力更好地掌握属性属性,所以要确保我不会离开.
用于解释在编译时是否已知这一点的加分点(没有作弊和Xcode中的检查!).
@synthesize我的实现文件中没有任何语句.
M. *_*ani 25
注意:编译器将在所有情况下自动合成实例变量,在该情况下,它还合成至少一个访问器方法.如果为readwrite属性实现getter和setter,或者为readonly属性实现getter,编译器将假定您正在控制属性实现,并且不会自动合成实例变量.如果您仍然需要一个实例变量,则需要请求合成一个变量
使用Objective-c编程 - 封装数据 - 您可以实现自定义访问器方法
| 归档时间: |
|
| 查看次数: |
10480 次 |
| 最近记录: |