ios - Objective-C 访问 Plist 中的特定项目

标签 ios objective-c plist

我创建了一个应用程序,我正在尝试访问存储在 plist 文件中的 URL。在这种状态下,我只是想注销内容。我知道之前有人问过类似的问题,但我是专门针对我的场景询问如何访问 Item 0。我正在尝试访问 InternalViaSafari 内的 Item 0 这会在 URLValidator 内显示,然后在 Root 内显示。我到目前为止的代码是: plist file

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"plist-file-name" ofType:@"plist"];
NSDictionary* plist = [NSDictionary dictionaryWithContentsOfFile:filePath];
NSString* name = [plist valueForKeyPath:@"URLValidator.InternalViaSafari"];
NSLog(name);

最佳答案

据我所知,您不能为此使用 keyPathInternalViaSafari 不是 URLValidator 字典的属性。更重要的是,InternalViaSafari 是一个 Array 而不是您的 plist 中的 String

为了得到这个字符串,你需要这样的东西:

NSArray *internalViaSafari = plist[@"URLValidator"][@"InternalViaSafari"];
NSString *name = internalViaSafari.firstObject;

这里发生的事情是,您从 plist 字典中获取 URLValidator 键下的值。这个值也是一个 Dictionary(这可以在您分享的 plist 屏幕截图中清楚地看到),因此您可以在 InternalViaSafari 键下获取值。该值又是一个 Array,它的元素是 Strings。在这个例子中,我从这个数组中提取了第一个条目。

关于ios - Objective-C 访问 Plist 中的特定项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41693418/

相关文章:

ios - 为什么不在此方法中设置属性?

ios - 如何调整 UITableViewController tableView 的大小?

ios - 如何使用返回/输入键创建 UIKeyCommand?

ios - JWPlayer 错误代码列表

iOS)我应该在哪里复制和粘贴 facebook XML 片段?

ios - plist、数组和字典的元素之间是什么关系?

iphone - 用于二进制 plist 的 Python 模块

ios - 是否有充分的理由从自定义 UIView 指向 UIViewController

ios - UITableView 滚动时多节冲突

objective-c - 如何从 Cocoa Notification 跳到 c 函数指针的调用?