我最近一直在使用 SQLite.swift 来构建我的应用程序数据库。我正在INTEGER
用一种类型定义我的所有列Int64
,就像文档解释的那样。
但每隔一段时间,我就需要它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
}
会正确吗?
我当然测试过了。它确实有效,但我在 Stackoverflow 中阅读了这个问题
看来我可能对 32 位设备有问题...
如果这是错误的,我该如何Int64
投入Int
?