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

Objective-C Access Specific Item in Plist

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

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。在这个例子中,我从这个数组中提取了第一个条目。