У меня есть TableViewController, называемый HomeTableViewController, загруженный данными из массива Core Data. Я попытался получить идентификатор объекта из выбранной ячейки следующим образом:Как получить NSManagedObjectId и получить данные
//Fetch Entity
NSManagedObjectContext *context = [self managedObjectContext];
NSFetchRequest *fetchRequest = [[NSFetchRequest alloc] initWithEntityName:@"OwedMoney"];
//Create an array that stores the contents of that entity
youOweArray = [[context executeFetchRequest:fetchRequest error:nil] mutableCopy];
//Create managedObjectId
NSManagedObject *YouOweData = [youOweArray objectAtIndex:0];
NSManagedObjectID *moID = [YouOweData objectID];
//Successfully got the managedObjectId
NSLog(@"This is the id %@", moID);
Я был в состоянии получить managedObjectId. Но здесь сложная часть. Теперь я хочу выполнить итерацию через свой массив и получить все объекты. Затем я хочу получить объект, равный выбранной ячейке, и получить доступ к его логическому значению «Платный». Я сделал это так:
BOOL Found = NO;
OwedMoney *OwedObject;
NSManagedObjectID *OwedId = [OwedObject objectID];
for (OwedMoney *OwedObject in youOweArray)
{
NSLog(@"%@", OwedObject);
if (OwedId == moID)
{
Found = YES;
break;
}
}
if (Found == YES)
{
BOOL isPaid = YES;
OwedMoney *Object = OwedObject;
Object.paid = [NSNumber numberWithBool:isPaid];
NSLog(@"Is it paid: %@",Object.paid? @"Yes":@"No");
}
Хотя при запуске приложения «Найден» никогда не соответствует YES. Это означает, что мои объекты Id не совпадают. Я хотел бы узнать, как найти выбранную ячейку просмотра таблицы, захватить NSManagedObjectId и получить доступ к ее атрибутам.
Вся помощь приветствуется, спасибо заранее.
Я реализовал это и Paid до сих пор не возвращался – doc92606
Ах фигу, незначительная ошибка с моей стороны, это возвращение Да! – doc92606