41

再会。

我有一个项目使用大量的 SSL 网络连接。该项目在 iOS 5 和 6 上运行良好且没有错误。但是在新的 iOS 7 中,我不断收到以下两个错误:

ERROR: unable to get the receiver data from the DB

ForceShrinkPersistentStore_NoLock -delete- We do not have a BLOB or TEXT column type.  Instead, we have 5.

他们没有以任何方式连接,我确实连续几个星期得到第一个,后来我也得到了第二个。

它们是在我的应用程序启动时收到的,那时我发送了一些 HTTP POST 并处理接收到的数据。我无法理解这些错误是从哪里来的。

如果我能理解它们,我就能找到它们。任何人都知道它们是什么意思或在什么情况下会导致它们?

4

7 回答 7

32

I also had the first of your problems just today:

ERROR: unable to get the receiver data from the DB

I don't know the reason (maybe somehow the cache got corrupt) but deleting all of the simulator's Applications folder made the problem go away for me.

rm -rf ~/Library/Application Support/iPhone Simulator/7.0-64/Applications/*
于 2013-10-03T18:13:27.840 回答
3

我遇到了同样的问题,但在 iOS 设备上调试时(iPhone 4 iOS 7.0.4)

不知道是什么原因造成的...但是我尝试删除设备上的应用程序并重新运行,然后错误就消失了。

于 2013-12-10T17:44:56.733 回答
3
于 2014-04-01T11:22:41.833 回答
3

今天遇到同样的问题。在我的情况下ERROR: unable to get the receiver data from the DB,错误消息没有通过从模拟器/设备中清理应用程序来解决。运行应用程序一段时间后再次报告错误。每次我[NSURLSession dataTaskWithRequest:...]打电话时都会记录下来。

发现它与缓存响应有关。设置忽略本地缓存的策略消除了错误日志记录:

NSURLSessionConfiguration *defaultConfigObject = [NSURLSessionConfiguration  defaultSessionConfiguration];
defaultConfigObject.requestCachePolicy = NSURLRequestReloadIgnoringLocalCacheData;

NSURLSession *session = [NSURLSession sessionWithConfiguration: defaultConfigObject
                                                          delegate: nil
                                                     delegateQueue: [NSOperationQueue mainQueue]];

NSURLSessionDataTask * dataTask = [session dataTaskWithRequest:urlRequest completionHandler:completion];
[dataTask resume];

注意:会话一旦不再需要就必须失效,否则会导致内存泄漏

于 2014-08-05T13:51:24.980 回答
1

我也遇到了类似的问题。。

包括上述建议我也忽略了我的帖子请求中的缓存

NSURLRequest *request = [NSURLRequest requestWithURL:url cachePolicy:NSURLRequestReloadIgnoringCacheData timeoutInterval:60.0];

问题从来没有出现在我身上......

于 2014-07-11T07:39:15.180 回答
1

对我来说更容易解决:

刚刚从模拟器中删除了应用程序(就像您从手机中删除的一样 - 我不需要删除一些文件夹)解决了这个问题。

于 2014-07-19T16:33:44.593 回答
0

删除派生数据为我解决了这个问题。

窗口 > 管理器 > 项目

选择您的项目,点击派生数据旁边的删除。

于 2014-07-02T19:13:30.887 回答