【问题标题】:Strange new iOS 7 errors: receiver from DB / ForceShrinkPersistentStore_NoLock奇怪的新 iOS 7 错误:来自 DB / ForceShrinkPersistentStore_NoLock 的接收器
【发布时间】:2013-10-02 15:02:02
【问题描述】:

美好的一天。

我有一个项目使用大量的 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 并处理接收到的数据。我不知道这些错误是从哪里来的。

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

【问题讨论】:

  • 我应该补充一点,这些错误不会引发任何异常,也不会以任何方式干扰应用程序功能。
  • 您的应用程序使用 CoreData 吗?他们更改了在 iOS 7 中用于 sqlite 存储的一些选项,听起来它们可能相关(如果您确认您使用的是 CD,我会找到指向 WWDC 视频的链接)
  • 不,我不是 CD,但我想要那个链接,谢谢!
  • 第 207 场会议,developer.apple.com/wwdc/videos
  • 似乎所有在 ios7 之前安装了应用程序并在更新后幸存下来的设备上都会收到此错误。现在,无论我重建多少次,我都会遇到这些错误。我认为删除应用程序和重启设备对我有帮助。

标签: iphone ios xcode ios7


【解决方案1】:

我今天也遇到了你的第一个问题:

ERROR: unable to get the receiver data from the DB

我不知道原因(也许缓存以某种方式损坏)但是 删除所有模拟器的 Applications 文件夹让我的问题消失了。

rm -rf ~/Library/Application Support/iPhone Simulator/7.0-64/Applications/*

【讨论】:

  • 星期一早上,两个错误都消失了(根本没有人接触过代码)。所以这些“幽灵错误”仍然是个谜。 iOS 7 仍然会抛出“BLOB TEXT”错误,但不会那么频繁。设备和模拟器 iOS 5 + 6 保持安静。我接受这个答案,因为没有问题了,即使它自己解决了。感谢您的支持。
  • 这可能很明显,但如果您也在实际的 iPhone 上进行调试,请删除该应用并重新运行它。
  • 请注意,除非您对路径中的空格字符(Application\ Support)进行转义,否则上述命令将不起作用
【解决方案2】:

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

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

【讨论】:

    【解决方案3】:

    这个错误一般发生在iOS7,原因可能是缓存问题。 我通过删除模拟器文件夹解决了这个问题。

    步骤:

    右击“Finder”窗口选择“Go to Folder”

    粘贴“~/Library/Application Support/iPhone Simulator/”

    这将打开包含在执行中使用的模拟器的 iPhone Simulator 文件夹。

    现在,删除 7.x 文件夹。

    【讨论】:

      【解决方案4】:

      今天遇到同样的问题。在我的情况下,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];
      

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

      【讨论】:

        【解决方案5】:

        我也遇到过类似的问题..

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

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

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

        【讨论】:

        • 我的网络服务中有许多 JSON 帖子。该问题仅发生在获取 > 40K 数据的设备上。将 cachePolicy 更改为 NSURLRequestReloadIgnoringCacheData 会导致问题消失。
        【解决方案6】:

        这对我来说更容易解决:

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

        【讨论】:

          【解决方案7】:

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

          窗口 > 管理器 > 项目

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

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2015-11-01
            相关资源
            最近更新 更多