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

发布于 2024-12-05 14:46:38 字数 303 浏览 0 评论 0原文

假设我有一个 plist 文件,我想压缩它。我有一个方法可以加载这个压缩文件,解压缩它,然后将结果放入 NSString 中。

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

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

Let's say I have a plist file, and I want to compress it. I have a method that loads this compressed file, uncompress it, and put the result into a NSString.

How may I convert that NSString into an array as simple as it can be done with those lines when the plist is not compressed :

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

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦行七里 2024-12-12 14:46:38

将文件读取到 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];

Read the file into an NSData then use:

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

where NSPropertyListFormat is NSPropertyListBinaryFormat_v1_0

Creating to NSData to write out is:

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

Example (not tested):

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];
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文