我已经将UITableViewCell
子类化了,而- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier
我正在设置一些实例变量,如下所示:
_image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]
我没有使用任何访问者,因为Apple建议不要在init
和dealloc
中使用访问者。
到目前为止一切顺利。我的问题是在我设置_image之后我想为图像设置userInteractionEnabled
到YES
。我应该用吸气剂做,还是应该直接使用ivar?
self.image.userInteractionEnabled = YES;
或者
_image.userInteractionEnabled = YES;
使用哪种风格?
答案 0 :(得分:4)
建议仍然有效:直接在init中使用ivar。如果您曾在该属性上实现自定义访问者(现在或以后,此处或子类化时),您可能会遇到麻烦。
答案 1 :(得分:1)
A third option:将图像分配给局部变量,使用它将其完全设置(例如,userInteractionEnabled
),然后将其从局部变量赋值给实例变量。
答案 2 :(得分:-1)
由于这是一个属性值,self.image ...更正确,它将确保发送所有通知,如果还有其他任何观察,则运行该对象。如果您使用_image ...则不会发送任何通知。