ios - NSURLCache 在 iOS 6.1 下崩溃

标签 ios ios6 nsurlcache

使用 iOS 6.1 我的应用程序在启动后直接崩溃,当它尝试发出多个 HTTP 请求时,但它在任何 OS < 6.1 上都可以正常工作。

我正在经历 EXC_BAD_ACCESS 在从队列调用的 strlen 函数中崩溃:com.apple.CFURLCACHE_work_queue,每次启动我的应用程序时,除了第一次。

NSURLCache crashes

我可以通过在应用程序启动后立即清除 NSURLCache 来解决问题:

[[NSURLCache sharedURLCache] removeAllCachedResponses];

还有其他人遇到过这些崩溃吗?应用程序代码中是否存在导致这些崩溃的问题?或者这应该是一个提交给苹果的错误?

最佳答案

自 iOS 6.1 以来新安装的应用程序遇到类似的崩溃。不同之处在于,当点击表格 View 中的文本单元格时会发生崩溃。此时没有网络请求。

这是BT:

thread #4: tid = 0x2903, 0x3ae7ad74 libsystem_c.dylib`strlen + 28, stop reason = EXC_BAD_ACCESS (code=1, address=0x0)
frame #0: 0x3ae7ad74 libsystem_c.dylib`strlen + 28
frame #1: 0x3ac6be24 libsqlite3.dylib`___lldb_unnamed_function282$$libsqlite3.dylib + 1232
frame #2: 0x3ac74a5e libsqlite3.dylib`sqlite3_file_control + 174
frame #3: 0x328493fe CFNetwork`__CFURLCache::RecreateEmptyPersistentStoreOnDiskAndOpen_NoLock() + 30
frame #4: 0x32849000 CFNetwork`__CFURLCache::RecreateEmptyPersistentStoreOnDiskAndOpen() + 44
frame #5: 0x327f9488 CFNetwork`__CFURLCache::OpenDatabase() + 192
frame #6: 0x32846a72 CFNetwork`__CFURLCache::ProcessCacheTasks0(bool) + 358
frame #7: 0x32846900 CFNetwork`__CFURLCache::ProcessCacheTasks(bool) + 36
frame #8: 0x3284681e CFNetwork`__CFURLCache::_CFURLCacheTimerCallback0() + 358
frame #9: 0x328466ac CFNetwork`__CFURLCache::_CFURLCacheTimerCallback(void*) + 32
frame #10: 0x328490fc CFNetwork`__SignalWorkerTaskToPerformWork_block_invoke_0 + 12
frame #11: 0x3ae4611e libdispatch.dylib`_dispatch_call_block_and_release + 10
frame #12: 0x3ae49ece libdispatch.dylib`_dispatch_queue_drain$VARIANT$mp + 142
frame #13: 0x3ae49dc0 libdispatch.dylib`_dispatch_queue_invoke$VARIANT$mp + 40
frame #14: 0x3ae4a91c libdispatch.dylib`_dispatch_root_queue_drain + 184
frame #15: 0x3ae4aac0 libdispatch.dylib`_dispatch_worker_thread2 + 84
frame #16: 0x3ae7aa10 libsystem_c.dylib`_pthread_wqthread + 360
frame #17: 0x3ae7a8a4 libsystem_c.dylib`start_wqthread + 8

将此作为 TSI 报告给 Apple,经过审核后他们要求我将其记录为错误,但仍然需要这样做。

有趣的是,您找到的解决方案也对我有所帮助,在启动时清除缓存解决了这个问题。

关于ios - NSURLCache 在 iOS 6.1 下崩溃,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14770022/

相关文章:

ios - 重置托管对象上下文不起作用

ios - Swift 3 - 旋转后的图像无法在 ImageView 中正确显示

ios - 如何在请求 session 之前检测用户是否有 iOS 集成的 Facebook 帐户设置?

core-data - 如何使用 Restkit 托管对象维护 JSON 数组顺序

ios - NSURLCache 缓存 "null"响应

ios - 是否可以在第一列不动的情况下使 UICollectionView View 水平滚动?

ios - 主屏幕上显示的 UIAlertView

objective-c - 在仅单例类的非初始化方法名称中使用 'init' 的 ARC 含义是什么

ios - 如何 [NSURLCache cachedResponseForRequest :] do its matching?

ios - 在 ios 上下载并缓存整个网页