
场景< - >>字符< - >>线条
实体具有以下关系:Scenes-> tocharacters-> Characters-> tolines-> lines
我想要完成的是获取所有存在实际拥有线条的角色的场景.
我读过的每篇文章都只谈到了“走图”这个问题,而且这个工作有效,但并不是一直到有线实体.
例如,这个谓词工作正常,深入一级并检索包含字符的所有场景:
let scene_ent:NSEntityDescription = NSEntityDescription.entityForname("Scenes",inManagedobjectContext: context) scenerequest.entity = scene_ent let predicate:nspredicate = nspredicate(format: "tocharacters.@count > 0") scenerequest.predicate = predicate 当我尝试修改谓词而不是检索包含具有行的字符的所有场景时:
let predicate:nspredicate = nspredicate(format: "tocharacters.Characters.tolines.@count > 0")
我收到错误’Unsupported function Expression count:(tocharacters.Characters.tolines)’
我在这里缺少一些非常简单的东西吗?
谢谢!
解决方法 谓词中的关键路径仅使用关系,而不使用实体名称nspredicate(format: "tocharacters.Characters.tolines.@count > 0")
应该
nspredicate(format: "tocharacters.tolines.@count > 0")
但这可能也行不通.这可能有用(目前无法测试):
nspredicate(format: "ANY tocharacters.tolines.@count > 0")
而且我很确定这会奏效:
nspredicate(format: "SUBquery(tocharacters,$c,$c.tolines.@count > 0).@count > 0")
更新:正确的解决方案是
nspredicate(format: "SUBquery(tocharacters,ANY $c.tolines != NulL).@count > 0")总结
以上是内存溢出为你收集整理的HowTo为对象创建谓词深入几个关系?核心数据iOS Swift全部内容,希望文章能够帮你解决HowTo为对象创建谓词深入几个关系?核心数据iOS Swift所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)