NSArchiver против NSKeyedArchiver

Откуда вы знаете, использовать NSArchiver или NSKeyedArchiver? Какая разница?

Ответ 1

NSArchiver поддерживает методы кодирования без ключа, такие как –encodeObject: или –decodePoint, а NSKeyedArchiver поддерживает ключевые методы кодирования, такие как –encodeObject:forKey: или –decodePointForKey:. Основное отличие заключается в том, что в архиваторах необходимо декодировать материал точно так же, как вы его закодировали. Каждый ключ может быть декодирован ровно один раз. С другой стороны, скрещенные архиваторы не ограничивают вас никаким порядком, и вы можете свободно декодировать один и тот же объект несколько раз.

По возможности используйте NSKeyedArchiver. Это новее и, вероятно, в конечном итоге заменит не-ключ-вариант.