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

具有子类NSManagedObjects的核心数据谓词

  •  0
  • coneybeare  · 技术社区  · 16 年前

    我有一节音频课。这个音频有一个SOUND\u a子类和一个SOUND\u B子类。这一切都是正确的,工作良好。

    我有另一个模型,叫它PLAYLIST\u JOIN,它可以包含(在现实世界中)声音A和声音B,所以我们给它一个音频和播放列表的关系。

    这一切都在应用程序中工作。

    我现在遇到的问题是用NSPredicate查询PLAYLIST\u JOIN表。我想做的是通过在谓词中给它2个键来找到一个确切的PLAYLIST\u JOIN项

    sound_a._sound_a_id = %@ && playlist.playlist_id = %@
    

    sound_b.sound_b_id = %@ && playlist.playlist_id = %@
    

    sound_a sound_b ,但已存储 audio

    我能给谓词传递一个方法吗?像这样:

    [audio getID] = %@ && playlist_id = %@

    1 回复  |  直到 16 年前
        1
  •  1
  •   Marcus S. Zarra    16 年前

    它变得有点复杂,但您需要在谓词中添加第三个条件:

    (entity.name = sound_a && _sound_a_id = %@ && playlist.playlist_id = %@) && (entity.name = sound_b && sound_b_id = %@ && playlist.playlist_id = %@)
    

    第一个条件是引用 NSEntityDescription 这是世界的一部分 NSManagedObject 以及它的 name 属性只是一个字符串。