Как преобразовать NSData в NSArray (или NSObject) - PullRequest
3 голосов
/ 19 сентября 2011

Я тестировал этот код, но он вызывает ошибку SIGABRT.

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data]

NSData - это plist-данные в формате xml. Этот код отлично работает.

[urlData writeToFile:[self docPath] atomically:YES];
array = [[NSMutableArray alloc] initWithContentsOfFile:[self docPath]];

Как я могу изменить NSData на NSArray без преобразования файла?

1 Ответ

7 голосов
/ 19 сентября 2011

Предполагается, что вы указали NSString *filepath путь к файлу сохраненного файла данных.

NSPropertyListFormat format;
NSData *dataFromFile = [NSData dataWithContentsOfFile:fileNameWithPath];
NSArray *arrayFromFile = nil;
if (dataFromFile) {
    arrayFromFile = [NSPropertyListSerialization propertyListFromData:dataFromFile
                                                       mutabilityOption:NSPropertyListMutableContainers
                                                                 format:&format 
                                                       errorDescription:NULL];
}

Надеюсь, это поможет ...

...