给定以下类定义:
@interface MyController : OtherController {
NSString *_ID;
}
@property(nonatomic,retain) NSString *ID;
@end以及以下实现:
@implementation DRMControllerNDS
@synthesize ID =_ID;
@end@synthesize语句在这里做什么?具体来说,为什么我们要将_ID实例变量的值设置为ID属性?在执行的这一点上,_ID不会是nil吗?我见过这个结构使用了很多次,还不明白它的用途……
有人能解释这个吗?
发布于 2011-09-16 18:38:02
简单地说,@synthesize行的意思是“为属性"ID”创建getter和setter方法,但不要使用名为"ID“(默认值)的实例变量来存储值,而应使用名为"_ID”的实例变量。“
发布于 2011-09-16 18:26:10
如果您试图访问instanceOfMyController._ID,您将得到一个错误,因为._ID属性不存在;@synthesize指令允许您使用点符号。
有关详细信息,请参阅this question。
https://stackoverflow.com/questions/7443269
复制相似问题