2011-09-19 97 views
3

我测试过这段代码,但它会导致SIGABRT错误。如何将NSData转换为NSArray(或NSObject)

NSArray *array = [NSKeyedUnarchiver unarchiveObjectWithData:data] 

NSData是带有xml格式的plist数据。此代码工作正常。

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

如何在没有文件转换的情况下将NSData更改为NSArray?

回答

7

这假设您已经使用保存的数据文件的文件路径填充了NSString *filepath

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

希望帮助...