请耐心等待这是我的第一个 swift 项目,我还没有跟上语法/语言的速度。
我使用 AlamoFire 从 Web 服务中检索数据并使用 SwiftyJson 对其进行解析。然后我想使用 SQLite.swift 将它插入到本地 SQLite 数据库中。
到目前为止,AlomoFire、SwiftyJson 和 SQLite.swift 已安装并在我的项目中运行,令我惊讶的是,事情进展得非常顺利;)
现在我的问题。我得到的数据是 JSON,在一个数组中,所以我想这样做:
let companiesTable = db["companies"] // get the table from our SQLite Database
db.transaction(.Deferred) { txn in
for (index,company) in data {
if companiesTable.insert(name <- company["name"]!), shortname <- company["short_name"]).statement.failed {
return .Rollback
}
}
return .Commit
}
我的问题在于插入。我必须使用 ! 强制展开,这对于名称(数据库中的必需列)是可以的,但对于短名称或其他十几个可能为空/空的列(为简单起见,在上面的示例中未提及)则不行。当然,只应插入具有值的列。
第二个问题。我在stackoverflow上找到了关于事务的东西,在执行“返回”时事务是自动提交还是回滚