Использование UIPickerView для создания отношения CoreData - PullRequest
0 голосов
/ 31 мая 2010

Хорошо, у меня довольно простое приложение.

У меня есть две разные сущности CoreData, Игры и Платформы, у каждого из которых есть один атрибут: имя, и между ними существует отношение один ко многим.

Платформы заполняются при первом запуске приложения и никогда не изменятся в результате ввода данных пользователем.

Я работаю над своим представлением «Добавить», чтобы позволить пользователю добавлять новые игры в свою личную базу данных, и каждая игра должна выбираться на платформе. Само представление add представляет собой сгруппированное табличное представление со статическими настраиваемыми ячейками. При нажатии на ячейку платформы пользователь должен перейти в другое представление для выбора платформы.

Я думаю, что UIPickerView кажется логичным выбором для элемента управления, поскольку список платформ является статическим, но я не уверен, как его использовать с CoreData. Даже если я создам запрос на выборку для получения объектов платформы и извлечения строк, как мне связать новый объект Game с исходным объектом Platform?

1 Ответ

0 голосов
/ 31 мая 2010

Для этого требуется всего несколько строк кода, при условии, что вы создаете экземпляр своего объекта Platforms непосредственно перед сохранением данных, вы должны сделать что-то вроде:

Platforms *newPlatform = (Platforms *) [NSEntityDescription insertNewObjectForEntityForName:@"Platforms" inManagedObjectContext:self.managedObjectContext];
[newPlatform setValue:@"yourPlatformName" forKey:@"name"];
[newPlatform setValue:yourGameObject forKey:@"games"];

NSError *error;
if (![[self managedObjectContext] save:&error]) {
    // Handle error
    NSLog(@"Unresolved error %@, %@", error, [error userInfo]); 
}

Это также автоматически обновляется через Core Data yourGameObject.

...