我剛開始使用Realm的swift框架,並不確定是否遺漏了某些東西,但我認爲通過領域的API查詢數據的方式非常麻煩,所以我想爲它寫一個幫助函數。Swift:與嵌套泛型助手函數相關的問題
但是當我玩它的泛型函數時,我遇到了一些問題。
因此,這裏的輔助函數:
static func queryFromRealm<T: Object>(object: T, query: String) -> Results<T> {
let realm = try! Realm()
return realm.objects(T.self).filter(query)
}
realm.objects(類型:)是境界的功能,這需要一個泛型類型參數:
public func objects<T: Object>(_ type: T.Type) -> Results<T> {
return Results<T>(RLMGetObjects(rlmRealm, (type as Object.Type).className(), nil))
}
但是,當我把這個助手方法:
let currentUser = STHelpers.queryFromRealm(object: STUser, query: "uid = 'xxxxx'")
我有這個錯誤:無法將類型'STUser.Type'的值轉換爲預期的參數類型'對象',其中STUser從Realm的Object類繼承。
我不知道哪一步是錯誤的,我真的很感激它的建議和幫助!提前致謝!
謝謝!其實我昨天才知道metatype,所以它自然不會出現在我的面前。現在我學到了一個新的竅門! – Chenglu