1

官方文档告诉我,为了正确管理“笔尖对象”的内存,我必须做这三件事。

@property (nonatomic, retain) IBOutlet UIUserInterfaceElementClass *anOutlet;

“然后你应该合成相应的访问器方法,或者根据声明实现它们,并(在 iPhone OS 中)释放 dealloc 中的相应变量。”

- (void)viewDidUnload {
    self.anOutlet = nil;
    [super viewDidUnload];
}

这对于正常视图是有意义的。UITableViewCells但是,对于通过 .nib 文件加载自定义的 UITableView,我该如何做呢?

MyCustomCell.h 中有IBOutlets(从 UITableViewCell 继承),但这不是我加载 nib 并将其应用于单元格实例的地方,因为这发生在 MyTableView.m

那么我是否仍然IBOutletsdeallocMyCustomCell.m 中发布或者我必须在 MyTableView.m 中做些什么?

MyCustomCell.m 也没有- (void)viewDidUnload {}我可以将 my 设置IBOutlets为 nil 的位置,而 MyTableView.m 可以。

4

1 回答 1

2

您的 IBOutlets 是单元格的属性吗?如果是这样,则在 MyCustomCell 的 dealloc 方法中释放它们。

确保您遵循 tableViews 的指南并在 tableview:cellForRowAtIndex 中调用 dequeueReusableCellWithIdentifier:。tableView 将在不再需要时释放您的自定义单元格。假设您没有任何其他对您的单元格的引用(您不应该),那么将为 tableView 出列的单元格调用 dealloc。

于 2010-04-28T20:24:36.657 回答