我有两节课。第一个是AbstractEntity.swift:
class AbstractEntity : DBObject{
//...
}
另一个是User.swift,它继承了AbstractEntity。
class User: AbstractEntity {
dynamic var Sync: NSNumber?
dynamic var Password: NSString?
dynamic var id_Worker: NSNumber?
dynamic var Login: NSString?
}
在我的主数据库控制器中,我有这个方法:
func getObjectByID(ID: NSNumber, entityClass: AnyClass)-> AbstractEntity{
println("String value = "+ID.stringValue)
var query = entityClass.query().whereWithFormat("id = %@", withParameters: [ID.stringValue])
var resSet = query.fetch()
var abstractEntity = AbstractEntity()
if (resSet.count > 0){
abstractEntity = resSet[0] as! AbstractEntity
}
return abstractEntity
}
问题是,当我尝试通过id从数据库中获取对象时,我的Id值为nil。它只是在我启动我的应用时第一次发生。
var user = getObjectByID(2, entityClass: User.classForCoder())
为什么会这样?
答案 0 :(得分:0)
由于这些不是DBAccess表,我们需要确保它们在任何地方使用之前都是兼容的。虽然我们会将此作为错误记录并在将来的版本中修复,但您应该能够通过调用以下方法解决此问题:
+(void)setupTablesFromClasses:(Class)classDecl,...;
将创建对象,并在使用它们之前缓存它们。
由于 阿德里安