【发布时间】:2015-11-10 13:59:21
【问题描述】:
我在后台进行查询时遇到了一些问题。
我从互联网下载一个 JSON,用 Reskit 解析它,然后用 FMDB 将一组对象保存到我用 SQLCipher 加密的 sqlite3 数据库中。
这是一个例子:
FMDatabaseQueue *_queueSelect = [FMDatabaseQueue databaseQueueWithPath:[DataBaseController getPathBaseDatos]];
[_queueSelect inDatabase:^(FMDatabase *db) {
[db setKey:DATABASE_KEY];
FMResultSet *existeConsulta = [db executeQuery:sql];
while([existeConsulta next]) {
[results addObject:[existeConsulta resultDictionary]];
}
}];
我尝试使用“inTransaction” 和“dispatch_async” 但没有成功。
完成这项任务的正确方法是什么?
【问题讨论】:
-
“没有成功”是什么意思?它是否成功运行,但不是异步运行? (这是有道理的,因为这段代码 sn-p 不会异步执行任何操作。)还是失败了?如果失败,你检查
setKey和executeQuery的返回码了吗?他们分别是TRUE和非nil吗?如果任一失败,lastErrorMessage是什么?