の追加
UIViewController復元
私のためにそれを解決しました。プロトコル参照をクリックすると、次のように表示されます。
// A class must implement this protocol if it is specified as the restoration class of a UIViewController.
@import UIKit;
@interface AppDelegate : UIResponder <UIApplicationDelegate, UIViewControllerRestoration>
@property (strong, nonatomic) UIWindow *window;
@end
ドキュメントには次のように書かれています。
復元クラスは UIViewControllerRestoration プロトコルを実装し、復元時に指定されたオブジェクトを検索または作成します。それぞれをいつ使用するかについてのヒントを次に示します。
1) ビュー コントローラーが起動時にアプリのメイン ストーリーボード ファイルから常に読み込まれる場合は、復元クラスを割り当てないでください。代わりに、アプリのデリゲートにオブジェクトを検索させるか、復元されたオブジェクトを暗黙的に検索するための UIKit のサポートを利用してください。
2) 起動時にメインのストーリーボード ファイルから読み込まれないビュー コントローラーの場合は、復元クラスを割り当てます。最も簡単なオプションは、各ビュー コントローラーを独自の復元クラスにすることです。
ここまでは、このように理解していました。UIViewControllerRestoration プロトコルがなければ、appDelegate は復元クラスではありません (1)。したがって、警告はアプリの起動時 (復元時) に書き込まれます。アプリ デリゲートは、マーカー ファイルに割り当てる必要があるオブジェクトを何らかの形で見つけることができません。問題は appDelegate にあります。アプリ デリゲートが restoreClass になると、ステップ 1) をスキップしてステップ 2) に進みます。appDelegate は、他のすべてのビューのメインの RestorationClass になるようです。次の方法:
+ (UIViewController*) viewControllerWithRestorationIdentifierPath:(NSArray *)identifierComponents
coder:(NSCoder *)coder {}
アプリで呼び出されることはなく、復元は警告やエラーなしで機能します。
問題と何が起こっているのかを理解したいと思います。これがお役に立てば幸いです。問題を明確にするためにコメントを歓迎します。:)