我有一个核心数据对象,我有2个Fieds(一个字符串(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)
Run Code Online (Sandbox Code Playgroud)
任何想法我在做什么错?使用相同的代码和2个整数值筛选它工作正常.
提前致谢
Mar*_*n R 42
如果formUUID是一个NSString或一个Swift,String那么你必须使用
%@占位符:
let resultPredicate2 = NSPredicate(format: "formUUID = %@", formUUID)
Run Code Online (Sandbox Code Playgroud)
这不是对您的问题的确切回答,但现在人们现在可能会使用您的代码解决问题:
在最新版本的XCode中,您现在必须解开谓词,如下所示:
var compound = NSCompoundPredicate.andPredicateWithSubpredicates([predicate1!, predicate2!])
Run Code Online (Sandbox Code Playgroud)
因为NSPredicate初始化程序现在返回NSPredicate?类型.
| 归档时间: |
|
| 查看次数: |
34874 次 |
| 最近记录: |