Если у меня есть сохраненный NSManagedObject, как проверить, имеет ли одно из его ДОПОЛНИТЕЛЬНЫХ отношений значение или нет? - PullRequest
0 голосов
/ 26 марта 2011

У меня есть NSManagedObject с именем account , и он возвращается и сохраняется из выборки.Этот NSManagedObject имеет необязательное отношение, называемое reports , которое является отношением To-Many сущности Reports .Учетная запись может иметь много отчетов.

У сущности account при создании не будет никаких отчетов.Когда я впервые передаю этот недавно созданный объект account , как правильно проверить, что в нем нет отчетов?

Я пробовал оба:

if ([self.account valueForKey:@"reports"] == nil)

if ([self.account valueForKey:@"reports"] == NULL)

NSLogкогда проверено на [self.account valueForKey: @ "reports"] возвращает Отношение Отношения в консоли.Я читал, что это нормально, поскольку у него еще нет значений или каких-либо объектов отчета, связанных с ним.

Как программно проверить это?

1 Ответ

2 голосов
/ 26 марта 2011

Так как это отношение ко многим, оно представлено объектом NSMutableSet (технически подкласс CoreData, но это не важно). Этот объект всегда будет там, даже если в нем нет объектов, и в консоли вы увидите его описание. Вам нужно позвонить count, чтобы узнать, сколько объектов в отношениях отчетов.

if([[self.account valueForKey:@"reports"] count] == 0) [self noReports];

Проверка на ноль, как вы делали в вопросе, работает для отношений один к одному.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...