3

iOS8 の VFR-Reader-Core で現在動作しているアプリをテストしましたが、そこから PDF を開こうとすると完全にクラッシュします。この問題を抱えているのは私だけですか? これを修正するために検索できる場所のアイデアはありますか? クラッシュレポートはこちら

ありがとうございました

4

3 に答える 3

8

iOS 8 では、アプリ コンテナーの Te ファイル システム レイアウトが変更されました。アプリケーションとそのコンテンツは、1 つのルート ディレクトリに格納されなくなりました。

iOS 8 リリース ノートから:

アプリ コンテナーのファイル システム レイアウトがディスク上で変更されました。ハードコーディングされたディレクトリ構造に依存するのではなく、 NSSearchPathForDirectoriesInDomains関数または クラスのURLForDirectory:inDomain:appropriateForURL:create:error:メソッドを 使用します。ファイル システム プログラミング ガイドの「ファイルとディレクトリへのアクセス」を参照NSFileManagerしてください。

この問題を簡単に調べたところ、VFRReader が上記の Apple の推奨に従っていないことがわかりました。

Github ページで問題を提起するつもりでしたが、問題の追跡が無効になっているようです。今日時間があれば、これを解決してプルリクエストを出すことを検討します。

編集: iOS8 で動作するバージョンのフォークを確認してください: https://github.com/liamnichols/Reader
また、元のリポジトリでプル リクエストを送信しました: https://github.com/vfr/Reader/プル/54

于 2014-09-01T11:09:05.717 に答える
2

vfreader の ReaderDocument.m から、著者は次のように述べています。

また、// iOS 8 以降、アプリケーションの ~/Documents ディレクトリはそのバンドル内に存在しなくなり、// バンドルされた PDF ファイルは、アクセスする前にアプリケーションの // ~/Documents ディレクトリにコピーする必要があります。 "

それが役に立てば幸い。

于 2014-10-05T19:22:35.650 に答える
1

最後にこれに困惑しました:

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

iOS8で動作するようになりました。

編集:コードにいくつかの変更を加えましたが、これでもこのクラッシュを回避するのに役立ちません。しかし、デバイスで実行すると動作します。(シミュレーターでクラッシュ)。

メモリリーク、時には良い方法、時には間違った方法:D

于 2014-12-02T05:46:54.213 に答える