私は2つのクラスを持っています。最初のものは AbstractEntity.swift です:
class AbstractEntity : DBObject{
//...
}
もう一つは、AbstractEntity を継承した User.swift です。
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())
なぜこれが起こるのですか?