我有一个核心数据对象,我有 2 个字段(一个字符串(GUID)和一个我想用作过滤器的 Int)
因此在 SQL 中它将是“SELECT * FROM Answers WHERE qIndex = 1 AND GUID = '88bfd206-82fb-4dd0-b65d-096f8902855c'
我用 Core Data 尝试过,但我无法使用字符串值进行过滤。
这是我的代码
var request = NSFetchRequest(entityName: "Answers")
request.returnsObjectsAsFaults = false;
let resultPredicate1 = NSPredicate(format: "qIndex = %i", qIndex)
let resultPredicate2 = NSPredicate(format: "formUUID = %s", formUUID)
var compound = NSCompoundPredicate.andPredicateWithSubpredicates([resultPredicate1, resultPredicate2])
request.predicate = compound
var results:NSArray = context.executeFetchRequest(request, error: nil)
知道我做错了什么吗?使用相同的代码和 2 个整数值的过滤器,它工作正常。
提前致谢
最佳答案
如果 formUUID
是一个 NSString
或一个 Swift String
那么你必须使用
%@
占位符:
let resultPredicate2 = NSPredicate(format: "formUUID = %@", formUUID)
关于swift - NSPredicate 与 Swift 和核心数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24855159/