iPhone - 使用压缩plist文件的内容填充数组

时间:2011-09-19 16:00:34

标签: iphone ios arrays compression plist

假设我有一个plist文件,我想压缩它。我有一个方法加载此压缩文件,解压缩,并将结果放入NSString。

如何将NSString转换为数组,就像在未压缩plist时可以使用这些行一样简单:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"];
NSArray* arrayOfDatas = [NSArray arrayWithContentsOfFile:filePath];

1 个答案:

答案 0 :(得分:2)

将文件读入NSData,然后使用:

+ (id)propertyListWithData:(NSData *)data options:(NSPropertyListReadOptions)opt format:(NSPropertyListFormat *)format error:(NSError **)error

其中NSPropertyListFormatNSPropertyListBinaryFormat_v1_0

创建到NSData写出来是:

+ (NSData *)dataWithPropertyList:(id)plist format:(NSPropertyListFormat)format options:(NSPropertyListWriteOptions)opt error:(NSError **)error

示例(未测试):

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"test" ofType:@"plist"];
NSData *data = [NSData dataWithContentsOfFile:filePath];
NSError *error;
NSArray* plist = [NSPropertyListSerialization propertyListWithData:data options:NSPropertyListImmutable format:NULL error:&error];

NSData *propertyListSerializedData = [NSPropertyListSerialization dataWithPropertyList:plist format:NSPropertyListBinaryFormat_v1_0 options:0 error:&error];
[propertyListSerializedData writeToFile:filePath atomically:YES];