7 ответов:
используйте NSKeyedArchiver (который является последним предложением сообщения Garrett links):
NSData *data = [NSKeyedArchiver archivedDataWithRootObject:array];обратите внимание, что все объекты в
arrayдолжны соответствоватьNSCodingпротокол. Если это пользовательские объекты, то это означает, что вам нужно прочитать на кодирование и декодирование объектов.обратите внимание, что это создаст довольно трудный для чтения формат списка свойств, но может обрабатывать очень широкий спектр объектов. Если у вас есть очень простой массив (например, строки), вы может потребоваться использовать NSPropertyListSerialization, который создает немного более простой список свойств:
NSString *error; NSData *data = [NSPropertyListSerialization dataFromPropertyList:array format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];есть также константа формата XML, которую вы можете передать, если хотите, чтобы она была читаемой на проводе.
на несколько связанных, обратите внимание, вот как вы можете конвертировать в формат NSData обратно в массив NSArray:
NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]
Я не уверен, что это поможет вам, но это ссылка для NSMutableArray to NSData.
я использовал этот код.
NSError *error; NSMutableData *jsonData = [[NSJSONSerialization dataWithJSONObject:yourDemoArray options:0 // Pass 0 if you don't care about the readability of the generated string error:&error] copy];
вы можете сделать это-
NSArray *array= [NSArray array]; NSData *dataArray = [NSKeyedArchiver archivedDataWithRootObject:array];
в iOS 9+ Используйте это пожалуйста:
NSArray *array = [[NSArray alloc] init]; NSData *data = [NSPropertyListSerialization dataWithPropertyList:array format:NSPropertyListBinaryFormat_v1_0 options:0 error:nil];более старая версия этого была устаревшей в iOS 8.
Comments