在 iOS6 应用程序中,我使用 CoreData 从 DB 获取 NSManagedObjects 并将它们显示在 tableViewCell 中。我的问题是,与初始滚动位置之外的单元格对应的所有对象都处于故障状态并且不会恢复活力。我看不到我的错误。
fetchRequest.returnsObjectsAsFaults = 否;有帮助,但我想要一个干净的解决方案。
这是代码:
- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath
{
static NSString *CellIdentifier = @"ContactsCell";
ContactsCell *cell = [tableView dequeueReusableCellWithIdentifier:CellIdentifier forIndexPath:indexPath];
Contact *contact = [self.contacts objectAtIndex:indexPath.row];
//here some contacts are faulted. contact.name is null if I fetch it
[cell setContactData:contact];
return cell;
}
这是我获取的方式(使用 Restkit 0.10.3):
NSFetchRequest *fetchRequest = [Contact fetchRequest];
fetchRequest.sortDescriptors = [self sortDescriptors];
fetchRequest.returnsObjectsAsFaults = NO;
return [Contact objectsWithFetchRequest:fetchRequest];