理想的には、NSCoding 準拠のクラスは、encodeWithCoder: と initWithCoder: を使用して期待どおりに動作します (少なくとも最近までそう思っていました) 開発者がルーチン内で何が起こっているかを気にする必要はありません (NSCoding 準拠のクラスに関する私の考えが完全に台無しにされない限り) !)
UIImageView クラスは NSCoding に準拠しています。したがって、NSKeyedArchiver および NSKeyedUnarchiver クラスを使用してシリアル化/逆シリアル化する方法を気にする必要はありません。しかし、UIImageView オブジェクトをエンコードしようとするたびに、UIImage が encodeWithCoder: メソッドを認識しないというエラーが発生します。
現在、UIImageView は内部的に UIImage オブジェクトを使用しています。しかし、エンコーディング自体がそれを処理するべきではなかったのでしょうか?
それとも、initWithCoder および encodeWithCoder メソッドを実装できることをユーザーに知らせるために、ドキュメントで NSCoding 準拠が指定されていますか?
誰かが私のためにこれを明確にしてもらえますか! 私は完全に混乱しています!