Если производительность вас беспокоит: CFData / NSData совместима с NSCoding, поэтому просто оберните ваше сериализованное представление массива как NSCFData.
редактировать для детализации кодирования / декодирования:
Ваш массив целых должен быть преобразован в обычный формат байтов (в зависимости от порядкового номера машины) - например, всегда храните его как младший или старший порядковый номер. во время кодирования преобразуйте его в массив целых чисел с указанным порядком байтов, который передается объекту NSData. затем передайте представление NSData экземпляру NSCoder. при декодировании вы получите NSData-объект для ключа, вы условно преобразуете его в собственный порядковый номер машины при декодировании. один набор процедур замены байтов, доступных для OS X и iOS, начинается с OSSwap*
.
в качестве альтернативы см. -[NSCoder encodeBytes:voidPtr length:numBytes forKey:key]
. эта процедура также требует от клиента обмена порядком байтов.