2011-09-19 129 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]; 
} 

希望幫助...