Как получить атрибуты от сущности, связанной с отношениями, в Базовых данных? - PullRequest
0 голосов
/ 03 мая 2011

У меня есть опыт работы с ObjC, но он относительно новый для Core Data.До сих пор это было довольно просто, но я немного застрял в отношениях, поэтому я надеюсь, что кто-то может указать мне правильное направление.

У меня есть две сущности: одна - это список людей,а другой - список событий.

Я установил обратную связь (называемую «людьми») в модели данных между двумя сущностями, со стороной «Люди», установленной как «to-many».Другими словами, у меня могло быть 5 человек, но тысячи событий;каждое событие привязано к одному человеку, но один человек может отвечать за любое количество событий.

Я добавляю события, используя [NSEntityDescription insertNewObjectForEntityForName ...], а затем извлекаю их с помощью NSFetchedResultsController.

Проблема в том, что мне еще не удалось получить данные о человеке при извлечении определенного объекта события.Пример:

Log *logEntry = [_fetchedResultsController objectAtIndexPath:indexPath];

// this works:

NSLog(@"description: %@", logEntry.description);
NSLog(@"happened %i minutes ago", -[logEntry.date timeIntervalSinceNow] / 60);

// this does not (just spits out NULL):

NSLog(@"person responsible: %@", logEntry.people.name);

Что мне не хватает?Как я могу получить данные о человеке в отношениях?У меня есть ощущение, что я пропустил важную ссылку при добавлении записей журнала, или, возможно, необходимый предикат при извлечении записей журнала.Документы Apple немного скудны, когда речь заходит об отношениях и конкретных примерах.Я все еще могу застрять здесь в старом школьном SQL, так что я действительно могу использовать некоторую помощь.Спасибо!

1 Ответ

2 голосов
/ 03 мая 2011

Если люди состоят из нескольких человек, то они возвращаются как набор - так что logEntry.people возвращает NSSet людей, которые вы должны были бы зациклить, чтобы вывести людей и, таким образом, иметь возможность запрашивать имена людей .

Любые отношения с более чем одним объектом моделируются как набор (в настоящее время в iOS).

...