Im используя NSManagedObject в качестве атрибута в моем ViewController, заявил так:NSManagedObject становится нулевым
@property(retain, nonatomic)NSManagedObject *person;
Im распространяющегося содержание выборки в UITableView, когда пользователь вводит в контакт он ищет, это то, что происходит:
-(void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath{
self.person = [contacts objectAtIndex:indexPath.row];
Контакты содержит результат выборки, который делается так:
NSArray *contactsArray;
NSError *error;
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] init];
NSManagedObjectContext *context = [(OAuthStarterKitAppDelegate *)[[UIApplication sharedApplication] delegate] managedObjectContext];
NSEntityDescription *entity = [NSEntityDescription
entityForName:@"Contacts" inManagedObjectContext:context];
[fetchRequest setEntity:entity];
testForTrue = [NSPredicate predicateWithFormat:@"SOME CONDITION"];
[fetchRequest setPredicate:testForTrue];
[fetchRequest setFetchLimit:10];
contactsArray = [[NSArray alloc]initWithArray:[context executeFetchRequest:fetchRequest error:&error]];
Когда пользователь удаляет контакт, self.person имеет это значение, но когда я пытаюсь использовать это значение в другом методе, оно равно нулю, а адрес - 0x000000. Это происходит только на iOS 5, на iOS 6 человек имеет значение выбранного контакта, и я могу использовать его в другом месте.
Любые идеи?
Спасибо.
Иногда вы должны изобретать что-то более умное, чем просто хранить идентификатор. Например, попробуйте создать несколько записей и попробуйте отправить любой запрос на выборку на каждом «rowForIndexPath:», и вы увидите, как он медленный, даже с идентификаторами – Gargo