Я играю с 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'") (или подобное), но objectWhere выдает ошибку компиляции, жалуясь, что функции нет, и есть нет автозаполнения для него. Поэтому я попытался вместо этого использовать objectsForPredicate, но это говорит о том, что тип «любой» (копаясь в заголовках, я обнаружил, что это соответствует типу «id» ObjC в жаргоне Realm). Что я здесь делаю неправильно? Я стараюсь быть очень явным, обязательно использую NSString вместо String и NSArray вместо Array, но все же что-то интерпретируется как «id» вместо определенного типа.
Какие-либо предложения?
Ваше здоровье
-Ник