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