【发布时间】:2010-03-25 04:59:14
【问题描述】:
我再次被以下错误所抓住,我想澄清一下为什么它是一个错误。
我有一个加载一些数据的简单 UITableView:
// myclass.h
@property (nonatomic, retain) NSArray *myData
// myclass.m
@synthesize myData;
- (void) viewDidLoad {
...
myData = someDataSource // note the lack of self
}
- (UITableViewCell *) cellForRowAtIndexPath ... {
...
cell.textLabel.text = [self.myData objectAtIndex:indexPath.row]; // EXC_BAD_ACCESS
}
表格首先加载正常,但是当滚动 向上 足以使其中一个单元格完全超出视图时,我会收到 EXC_BAD_ACCESS 错误。
我是否遗漏了有关@property 保留的内容。我的理解是,它会释放指针在重新分配之前指向的任何内容。如果我是正确的,那么为什么不使用 self.有什么问题吗?
感谢您的帮助。
**** 更新
为什么在我检查过的所有示例中,在没有 self 的情况下释放了 dealloc 方法中的对象?
- (void) dealloc {
[someArray release];
[someTableView release];
}
【问题讨论】: