代码之家  ›  专栏  ›  技术社区  ›  Nate

iphone核心数据-不是实体之间的恒定路径

  •  0
  • Nate  · 技术社区  · 15 年前

    我有一个与其他实体有关系的实体。假设我们有:用户->菜单->套餐

    我的问题是有些用户没有菜单。所以当我试图检查:user.menu.meal==rice时,我得到一个错误(路径未找到…)

    谢谢你的帮助!

    2 回复  |  直到 15 年前
        1
  •  0
  •   mmccomb    15 年前

    在关系上加一个零检查然后…

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

    或者更好的方法是,定义一个助手方法,如果有食物的话,它会返回食物…

    mealForUser:(User*)someUser {
         if (user.menu != nil && user.menu.meal != nil)
         return user.menu.meal;
    }
    
        2
  •  0
  •   Marcus S. Zarra    15 年前

    首先,您可以将此签入代码:

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

    在谓词内部,它看起来是一样的:

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

    在这两种情况下,因为在objective-c中nil处理得很好,所以您将得到正确的答案。