我在玩realm.io。我已经写了几个对象,现在我想查询它们。我的数据类:
class Sample : RLMObject {
dynamic var sampleKey : String = ""
}
和我的查询代码
@IBAction func readLocalRecord(sender: UIButton) {
let s : NSString = NSString.stringWithString("sampleKey == SampleValue")
let p : NSPredicate = NSPredicate(format: "sampleKey = %@", argumentArray: NSArray(object: NSString.stringWithString("SampleValue")))
// the following throws exception, that I cannot catch in Swift:
// 'Unsupported predicate value type', reason: 'Object type any not supported'
let r = Sample.objectsWithPredicate(p)
}
网页端和 RLMObject 的标题表明我应该可以说 Sample.objectsWhere("sampleKey = 'SampleValue'") (或类似的),但是 objectsWhere 给出了一个编译错误,抱怨函数不存在,并且有没有自动完成它。所以我尝试使用objectsForPredicate,但这表示类型'any'(挖掘标题,我发现这等于ObjC在Realm 术语中的'id'类型)。我在这里做错了什么?我尝试非常明确,确保使用 NSString 而不是 String 和 NSArray 而不是 Array,但仍然有一些东西被解释为 'id' 而不是特定类型。
有什么建议么?
干杯
-尼克