我想创建一个通用方法来从Realm数据库中获取对象模型。
问题是,调用方法的唯一方法.objectsWhere位于 Model Class (不是实例)中。
还有其他方法可以在模型实例中制作通用方法吗?
class DataBaseRepository {
// MARK: singleton declaration
class var sharedManager : DataBaseRepository {
struct Singleton {
static let instance = DataBaseRepository()
}
return Singleton.instance;
}// EndOf singleton declaration
let realm = RLMRealm.defaultRealm()
// MARK: - addRLMObject
// For addRLMObject it works !
func addRLMObject( r : RLMObject? ) {
if let objectToAdd = r {
realm.beginWriteTransaction()
realm.addObject(objectToAdd)
realm.commitWriteTransaction()
return
}
println("Error addRLMObject \(r)")
}
// MARK: - getRLMObject
// This generate error : reason: 'Object type 'RLMObject' not persisted in Realm'
func getRLMObject( r : RLMObject? , reqString : String )-> RLMObject?{
if let objectToget = RLMObject.objectsWhere(reqString).firstObject() as! RLMObject? {
// I want to make a generic method to get RLMObject for all my methods
// .objectsWhere is static method I can't call within instance
return objectToget
}
return nil
}
}
答案 0 :(得分:0)
您可以使用self.dynamicType.classMethod()
来调用相应的类方法,因此在这种情况下它将是self.dynamicType.objectsWhere(reqString)
。