假设我的视图控制器中有一个属性,定义如下:
@property (nonatomic, retain) UIImageView *checkmarkOffAccessoryView;
Run Code Online (Sandbox Code Playgroud)
我@synthesize在实现中,将release其-dealloc初始化并-viewDidLoad如下所示:
self.checkmarkOffAccessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checkmarkOff.png"]] autorelease];
Run Code Online (Sandbox Code Playgroud)
到现在为止还挺好.
当我在我的表视图委托中使用它作为多个单元格的附件视图时,会发生两件事:
该应用程序不会崩溃,因为我可以说,UI只是变得没有响应.这是在模拟器和设备上.
这是我如何使用我的单元格初始化属性:
- (UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// initialize or dequeue cell...
if (condition)
cell.accessoryView = self.checkmarkOffAccessoryView;
else
cell.accessoryView = nil;
}
Run Code Online (Sandbox Code Playgroud)
使用上述代码,只有一个单元显示附件视图并且UI冻结.
如果我UIImageView直接在委托方法中初始化实例,我会得到所有满足条件的单元格显示附件视图,并且我没有遇到UI冻结:
- (UITableViewCell *) tableView:(UITableView *)tv cellForRowAtIndexPath:(NSIndexPath *)indexPath {
// initialize or dequeue cell...
if (condition)
cell.accessoryView = [[[UIImageView alloc] initWithImage:[UIImage imageNamed:@"checkmarkOff.png"]] autorelease];
else
cell.accessoryView = …Run Code Online (Sandbox Code Playgroud)