ios - 如何从 plist 文件中只加载选定的数据

标签 ios objective-c plist

我的 plist 以 Root 为数组,然后此数组中的每个项目都是一个包含对象的字典:name(String) 和 surname(String)。我想显示我文件中的所有名称。目前我正在使用这段代码:

   NSArray *myData = [[NSArray alloc] initWithContentsOfFile:mypath];
   NSMutableArray *names = [[NSMutableArray alloc] init];
   for (int i=0; i < myData.count; i++) {
       [names addObject:[[myData objectAtIndex:i] objectForKey:@"name"]];
   }

有什么方法可以直接从 plist 文件加载键 @"name"的值到 NSMutableArray *names?如果我只需要 @"name"值,我只是不想将 plist 文件的全部内容加载到内存中。

最佳答案

没有。加载 plist 是一件孤注一掷的事情。除非你的 plist 是 massive 我不会担心它。如果是,那么您会考虑将它拆分成多个文件,而不是像编写您自己的 plist 反序列化器那样做一些事情(因为我向您保证 CoreFoundation 的 plist 解析器会比您的更快)。

关于ios - 如何从 plist 文件中只加载选定的数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15121137/

相关文章:

ios - "Cannot assign value of type ' 无效 ' to type ' PDFAction?为 PDFAnnotation 设置操作时出现 '"错误

ios - customDismissAction 不适用于远程通知

ios - 有没有办法检查字符串是否包含 Unicode 字母?

ios - 解析iOS SDK:如何在创建PFObject时复制objectId

ios - 错误 ITMS-90363 "Invalid Info.plist key. The key ' CFBundleIcons~iPad 中的捆绑...无效。”

ios - 如何根据第一次加载来加载TabBarController或UIViewController

ios - Xcode 中的小数位显示不正确?

ios - 使用动态生成的数组来使用搜索栏

xcode - Xcode 10意外的重复任务:CopyPlistFile

苹果手机 SDK :Can write data to plist on Simulator but can't do same thing at Device?