【发布时间】:2014-12-18 06:05:28
【问题描述】:
我会监听我的应用何时恢复工作(用户返回应用),并在发生这种情况时触发同步:
- (void)applicationDidBecomeActive:(UIApplication *)application
{
NSLog(@"App resumed...");
//Fire a sync
[[PPDropbox shared] sync];
}
我收到了一些在此事件之后发生的崩溃报告,并且尝试同步时显示:
Fatal Exception: DBException
DBException: SHUTDOWN: sqlite_util.cpp:208: SqliteConnectionBase has been closed {-[DBDatastore sync:]}
我的sync 方法目前看起来像这样:
-(void)sync
{
if(self.datastore){
[self.datastore sync:nil];
}
}
在我同步时是否应该进行某种检查以确保 SQLite 连接仍然可用?
Dropbox 数据存储版本 3.1.1,iOS 8.1
【问题讨论】:
-
您的应用程序何时关闭 DBDatastoreManager?当应用程序尝试调用同步时,它是否可能被关闭?如果是这样,那可能会导致这种情况。 (另外,如果 DBDatastore 已关闭,则可能。)不幸的是,此错误消息不是很清楚,但日志中可能有更多信息,例如,在“Terminating app due to...”之后。你有那部分吗?
-
我关闭了
- (void)applicationWillTerminate:(UIApplication *)application中的数据存储。我应该用别的东西关闭它吗?这是完整的崩溃日志:d.pr/n/DV26 -
我认为 applicationWillTerminate 应该没问题,但是 DBDatastoreManager 呢?做/什么时候关闭它?我之所以问,是因为我知道尝试从已关闭的 DBDatastoreManager 中的 DBDatastore 同步数据存储时可能会发生此错误。不幸的是,堆栈跟踪没有提供更多信息。你能重现这个吗?
-
我不会在任何地方关闭
DBDatastoreManager。我也应该在applicationWillTerminate中这样做吗? -
我还不能复制它,不。我只是看到我的应用用户的崩溃日志。
标签: ios dropbox-api