【发布时间】:2019-10-08 11:07:16
【问题描述】:
coredata模型中的属性元素是一个字符串(json字符串格式),它是一个字典数组,如下所示,
一个元素有
"[{"tagName":"sad","count":2},{“tagName":"happy","count":1}]"
其他都有
"[{"tagName":"sad1","count":2},{“tagName":"happy1","count":1},{“tagName":"nothappy","count":1}]"
需要通过引用标签名来搜索列表。
如果我使用下面的谓词,
tagName = "sad"
tagNameFilter += String(format: "vrTags CONTAINS[cd] \"%@\"", tagName)
它返回两个元素。它应该单独返回第一个元素
如果我不使用双引号
tagName = "sad"
tagNameFilter += String(format: "vrTags CONTAINS[cd] %@", tagName)
这是有原因的崩溃:
unimplemented SQL generation for predicate : (vrTags CONTAINS[cd] sad) (LHS and RHS both keypaths) with userInfo of (null)
如果我使用
tagName = "sad"
tagNameFilter += String(format: "vrTags CONTAINS[cd] \"\"%@\"\"", tagName)
它崩溃的原因:Unable to parse the format string
如何解决这个过滤器问题?任何建议将不胜感激。
【问题讨论】:
-
tagString CONTAINS[cd] "\"sad\"" -
@vikingosegundo,编辑了问题,请现在检查,需要动态传递值。仍然崩溃。
-
核心数据中为什么要保存标签为json?为什么没有合适的实体
Tag?
标签: swift core-data nspredicate predicate