0

iOS 7 のサポートを維持しながら、プロジェクトを iOS 7 から iOS 8 に移行しました。すべてのグラフィックをやり直したので、古いストーリーボードを破棄し、新しいユニバーサル ストーリーボードとサイズ クラスを使用して新しいストーリーボードを作成しました。

iOS 8 iPhone/iPad および iOS 7 iPhone ではすべて正常に動作しますが、iOS 7 iPad では次のエラーが発生し続けます。

[NSKeyedUnarchiver initForReadingWithData:]: data is empty; did you forget to send -finishEncoding to the NSKeyedArchiver?

アプリは到達しませんでしたapplication:didFinishLaunchingWithOptionsが、空のストーリーボードを作成するとアプリが正常に起動するため、問題はストーリーボードであることを知っています。

私は何が欠けていますか?iOS 7 をサポートするには、iPad 専用のアドホック ストーリーボードが必要ですか? または別の方法がありますか?

編集:

いくつかのテスト中に、例外をスローするメソッドは次のとおりであることがわかりました。

[storybord instantiateInitialViewController];

また

[storyboard instantiateViewControllerWithIdentifier:@"id"];

空のストーリーボードでアプリケーションを起動し、ストーリーボードをアプリ デリゲートにロードしました。ストーリーボードは nil ではありませんが、そのメソッドでアプリがクラッシュします。最初のものではないView Controllerを読み込んでも、結果は変わりません。

4

2 に答える 2

1

私はこの同じ問題を抱えていて、コンパクト/任意のサイズのクラス用にインストールしたが、任意/任意のサイズのクラス用にアンインストールしたコレクション ビューに絞り込みました。iOS 7 では、プロトタイプ セルが属するコレクション ビューがアクティブなサイズ クラスでアンインストールされている場合に問題が発生するようです。iOS 8 での実行は問題なく動作するため、iOS 8 以降のみをサポートしている場合、この問題は発生しません。

アクティブなプロトタイプ セル (動作しません): プロトタイプ セルを使用したアンインストールされたコレクション ビュー

プロトタイプセルが削除されました (動作): プロトタイプ セルのないアンインストールされたコレクション ビュー

これを解決するために、iPad 用にプログラムで読み込まれる xib を作成し、ストーリーボードを iPhone で使用できるようにします。問題のビューは iPad 上の Collection View を必要としないため、xib は非常に単純なはずですが、メンテナンスの観点からこれを行う必要があるのは依然として面倒です。

于 2015-03-19T00:07:54.900 に答える
0

私は最終的にそれを解決することができました.viewControllerのアウトレットを持つ要素にはiphoneサイズクラスしかないことがわかりました(通常\通常サイズクラスに追加するのを忘れていました)これがエラーを引き起こしました.

通常の\通常のサイズのクラスに追加すると、問題が解決しました

于 2015-03-04T09:19:24.547 に答える