Данные iPhone Core - не постоянный путь между объектами - PullRequest
0 голосов
/ 20 апреля 2010

У меня есть сущность, которая имеет отношения с другими сущностями. Допустим, у нас есть: пользователь-> меню-> еда

Моя проблема в том, что у некоторых пользователей нет меню. Поэтому, когда я пытаюсь проверить: user.menu.meal == рис, я получаю ошибку (путь не найден ...)!

Спасибо за помощь!

Ответы [ 2 ]

0 голосов
/ 20 апреля 2010

Во-первых, вы можете проверить это в коде как:

if (![user valueForKeyPath:@"menu.meal"]) {
 //User does not have a menu or a meal
}

Внутри вашего предиката это будет выглядеть так же:

[NSPredicate predicateWithFormat:@"user.menu.meal == nil"]

В любом случае, поскольку в Objective-C корректно обрабатывается ноль, вы получите правильный ответ.

0 голосов
/ 20 апреля 2010

Добавьте ноль проверки отношений затем ...

if (user.menu != nil && user.menu.meal != nil)

Или, что еще лучше, определите вспомогательный метод, который будет возвращать еду, если она присутствует ...

mealForUser:(User*)someUser {
     if (user.menu != nil && user.menu.meal != nil)
     return user.menu.meal;
}
...