在如下合成变量名后,我对使用 self 或带下划线的变量名感到非常困惑:
In .h file:
@property(nonatomic, strong) NSMutableArray *users;
In .m file:
@synthesize users = _users;
根据我在使用时的理解self.users
,操作系统会确保在 set 方法中释放之前分配的内存,所以我们不需要明确注意。
_users
是用户的实例变量,应该在访问用户变量时正常使用。如果我_users
用来更改它的值,那么它不会触发 KVO 委托,它不会通知观察用户值变化的类。
此外,self.users
允许在方法名称中区分虚拟变量,如下所示,
- (void)assignUsers:(NSMutableArray*)users {
self.users = users;
}
_users
有人可以告诉我在使用or时是否有任何我理解错误或遗漏的地方self.users
?