0

我正在使用 NSFetchRequest 根据存储在核心数据中的对象在 UITableView 中创建一个部分。

在 viewDidLoad 中,我执行获取请求并将返回的 NSManagedObjects 数组设置为类变量 NSArray *allEvents。我正在设置从获取请求返回的数组,如下所示:

    allEvents = [context executeFetchRequest:eventFetchRequest error:&error];

稍后我尝试在 numberOfRowsInSection 中调用 [allEvents count] 时遇到 EXEC_BAD_ACCESS 错误。

我设法通过将 self 添加到上面的代码行来设置获取请求中的数组来解决问题:

    self.allEvents = [context executeFetchRequest:eventFetchRequest error:&error];

谁能解释为什么这有效?我遇到过类似的情况,很想知道发生了什么。

谢谢。

4

1 回答 1

2

您对象上的“allEvents”属性很可能是一个保留属性,因此在第一种情况下,该数组没有被保留,并且在您访问它时已被释放。

于 2011-02-07T17:58:53.980 回答