В идеале класс, совместимый с NSCoding, будет работать, как ожидалось, с помощью encodeWithCoder: и initWithCoder: (по крайней мере, я думал, что до недавнего времени), без того, чтобы разработчик не беспокоился о том, что происходит внутри подпрограмм (если моя идея о совместимом с NSCoding классом полностью прикручен!)
Класс UIImageView совместим с NSCoding. Поэтому мне не нужно беспокоиться о том, как он будет сериализован/де-сериализован с использованием классов NSKeyedArchiver и NSKeyedUnarchiver. Но каждый раз, когда я пытаюсь кодировать объект UIImageView, я получаю сообщение об ошибке, которое UIImage не распознает метод encodeWithCoder:.
Теперь UIImageView внутренне использует объект UIImage. Но не следует ли кодированию позаботиться об этом?
Или соответствие NSCoding, указанное в документации, просто позволяет пользователю узнать, что они могут реализовать методы initWithCoder и encodeWithCoder?
Кто-то может прояснить это для меня! Я полностью смущен!