您好我正在使用SQLiteDB來訪問我寫的移動應用程序中的SQLiteDB。我開始編寫一個小模型類來接收SQLiteDB返回的行,並使它們可以方便地訪問我的程序的其餘部分。但是,當我嘗試開始結果時,我收到一個我不明白的錯誤。不能安全字典變成
這是我試圖運行
import Foundation
class DBModel {
static let db = SQLiteDB.sharedInstance()
required init(attributeParams: [String: Any]) {
let attrbitues = attributeParams
}
class func all() -> [DBModel] {
let rawAttributes = db.query("select * from \(tableName())")
print(self)
var objects = [DBModel]()
for record in rawAttributes {
print(record)
objects.append(self.init(attributeParams: record))
}
return objects
}
}
當我運行這段代碼我得到這個錯誤代碼:從這一行objects.append(self.init(attributeParams: record))
fatal error: can't unsafeBitCast between types of different sizes
: 我得到的錯誤是。 print(record)
的輸出是["id": 1, "name": Josh]
。
我對Swift非常陌生。但是,我認爲這可能與SQLiteDB查詢返回含有可選值的散列有關。但是,我不知道要解決它。
感謝,
喬希
好的,這裏感覺很蠢。我將'[String:Any]'改成了'[String:AnyObject?]',它似乎已經刪除了它們的錯誤。但是,不知道爲什麼。如果你能幫我理解Any和AnyObject之間的區別,我將不勝感激。 –