Элементом атрибута в модели 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
Как решить эту проблему с фильтром? Любые предложения будут оценены.