给出以下类def:
@interface MyController : OtherController {
NSString *_ID;
}
@property(nonatomic,retain) NSString *ID;
@end
以及以下实施:
@implementation DRMControllerNDS
@synthesize ID =_ID;
@end
@synthesize
声明在这里做什么?具体来说,我们为什么要将_ID
实例变量值设置为ID
属性?执行中此时_ID
不是nil
吗?我已经看过这个构造多次使用了,我还没有理解它的用途......
任何人都能解释一下吗?
答案 0 :(得分:4)
用简单的英文,@synthesize行说“为属性创建getter和setter方法”ID“,但是不要使用名为”ID“的实例变量(默认值)来存储值,使用实例变量称为“_ID”。“
答案 1 :(得分:0)
如果您尝试访问instanceOfMyController._ID
,则会收到错误,因为._ID
属性不存在; @synthesize
指令允许您使用点符号。
有关详情,请参阅this question。