0

私は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())

ここに画像の説明を入力

2回目は正しい値を取得します: ここに画像の説明を入力

なぜこれが起こるのですか?

4

1 に答える 1