【问题标题】:VFR-Reader Crashing in iOS8iOS8 中的 VFR 阅读器崩溃
【发布时间】:2014-08-18 21:15:09
【问题描述】:

我测试了一个当前在 iOS8 上使用 VFR-Reader-Core 的应用程序,当我尝试从中打开 PDF 时完全崩溃。我是唯一一个有这个问题的人吗?知道我可以在哪里搜索以纠正这个问题吗? Here is the crash report

谢谢

【问题讨论】:

    标签: ios objective-c crash ios8 vfr-reader


    【解决方案1】:

    在 iOS 8 中,应用容器的 Te 文件系统布局发生了变化。应用程序及其内容不再存储在一个根目录中。

    来自 iOS 8 发行说明:

    应用容器的文件系统布局在磁盘上发生了变化。相当 与依赖硬编码的目录结构相比,使用 NSSearchPathForDirectoriesInDomains 函数或 URLForDirectory:inDomain:appropriateForURL:create:error:方法的 NSFileManager 班级。请参阅File System Programming Guide 中的Accessing Files and Directories

    我已对该问题进行了简要研究,我发现 VFRReader 没有遵循 Apple 的上述建议。

    我打算在 Github 页面上提出一个问题,但问题跟踪似乎已被禁用。如果我今天有额外的时间,我会考虑解决这个问题并提出拉取请求。

    编辑:查看我的 fork 以获取适用于 iOS8 的版本:https://github.com/liamnichols/Reader
    我还在原始仓库提交了一个拉取请求:https://github.com/vfr/Reader/pull/54

    【讨论】:

    • 嗨@liamnichols 感谢此修复。但是,每次我打开一个 pdf 文件时,它都会在 CGContextDrawPDFPage(context, thePDFPageRef); 上崩溃;我尝试过不同的pdf文件。有什么线索吗?
    • 抱歉,我对 Core Graphics 和 PDF 渲染了解不多,这就是我依赖第三方库的原因 :) 祝你好运。。看到其他人询问有关崩溃的问题我的拉取请求也是如此......也许他们修复了它?
    【解决方案2】:

    来自vfreader的ReaderDocument.m,作者表示

    "同样,//从 iOS 8 开始,应用程序的 ~/Documents // 目录不再存在于其捆绑包中,任何捆绑的 PDF 文件都必须 被复制到应用程序的 // ~/Documents 目录之前 可以访问它们。”

    希望对你有帮助。

    【讨论】:

      【解决方案3】:

      终于搞砸了:

      @synchronized(nil)  {
          CGContextDrawPDFPage(context, _PDFPageRef);
      }
      

      它现在可以在 iOS8 中使用。

      编辑:对代码进行了一些更改,现在即使这样也不能帮助我避免这次崩溃。但是现在,如果我在设备上运行,那么它可以工作。 (在模拟器上崩溃)。

      内存泄漏,有时是好的方法,有时是错误的方法:D

      【讨论】:

      • 为什么不使用@synchronized(self)?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-02-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多