1

我进行了子类UITableViewCell化,并在其中- (id)initWithStyle:(UITableViewCellStyle)style reuseIdentifier:(NSString *)reuseIdentifier设置了一些实例变量,如下所示:

_image = [[UIImageView alloc] initWithImage:[UIImage imageNamed:@"image.png"]]

我没有使用任何访问器,因为 Apple 建议不要在 和 中使用访问initdealloc

到目前为止,一切都很好。我的问题是在我设置了要为图像设置的 _imageuserInteractionEnabled之后YES。我应该使用 getter 还是应该直接使用 ivar?

self.image.userInteractionEnabled = YES;

或者

_image.userInteractionEnabled = YES;

首选使用哪种风格?

4

3 回答 3

4

建议仍然成立:直接在 init 中使用 ivar。如果您曾经在该属性上实现自定义访问器(现在或以后,此处或子类化时),您可能会遇到麻烦。

于 2012-10-05T08:31:02.393 回答
1

第三种选择:将图像分配给局部变量,userInteractionEnabled使用它完全设置(例如,它的),然后将其分配给局部变量中的实例变量。

于 2012-10-05T15:42:11.810 回答
-1

由于这是一个属性值,self.image... 更正确,它将确保发送所有通知,并且如果有其他任何东西正在观察该对象是否运行。如果您使用 _image... 则不会发送任何通知。

于 2012-10-05T08:29:24.807 回答