iOS6 アプリでは、CoreData を使用して DB から NSManagedObjects をフェッチし、それらを tableViewCell に表示します。私の問題は、最初のスクロール位置の外側のセルに対応するすべてのオブジェクトが障害状態にあり、元に戻らないことです。私は自分の間違いを見ることができません。
fetchRequest.returnsObjectsAsFaults = NO; 役に立ちますが、クリーンなソリューションが必要です。
コードは次のとおりです。
- (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];