Используйте NSKeyedArchiver (последнее предложение ссылок на пост Гаррета):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];
Обратите внимание, что все объекты array
должны соответствовать NSCoding
протоколу. Если это настраиваемые объекты, это означает, что вам нужно прочитать об объектах кодирования и декодирования .
Обратите внимание, что это создаст довольно трудный для чтения формат списка свойств, но может обрабатывать очень широкий спектр объектов. Если у вас очень простой массив (например, строки), вы можете использовать NSPropertyListSerialization, который создает немного более простой список свойств:
NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];
Также существует константа формата XML, которую вы можете передать, если хотите, чтобы ее можно было читать по сети.