我最近一直在使用SQLite.swift來構建我的應用程序數據庫。 而且我正在定義所有INTEGER
列,其中包含Int64
類型,如文檔解釋。我可以直接將Int64投入Int嗎?
但每隔一段時間我需要Int64
只是Int
。 所以我的問題是,如果我這樣做:
//Create a table with Int instead of Int64
let test_id = Expression<Int>("test_id")
let tests = db["tests"]
db.create(table: tests, ifNotExists: true){ t in
t.column(test_id)
}
class func insertTest(t: Int) -> Int{
//insert.rowid returns an Int64 type
let insert = tests.insert(test_id <- t)
if let rowid = insert.rowid{
//directly cast Int64 into Int
return Int(rowid)
}
return 0
}
會不會是正確的嗎?
當然,我測試了它。而它的作品,但我讀this question in Stackoverflow
它似乎我能與32位設備的一個問題...
如果這是錯誤的,我怎麼能投Int64
到Int
?
(在Xcode 7,雨燕2.0測試)如果Int64類型的值大於2^31和int是32位做什麼你認爲會發生? – zaph
@zaph溢出?我不知道... –
@ zaph你能解釋一下嗎? –