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);
据我所知,您不能像那样使用 keyPath
。 InternalViaSafari
不是 URLValidator
词典的 属性。更重要的是 InternalViaSafari
是一个 Array
而不是你的 plist 中的 String
。
为了得到这个字符串,你需要这样的东西:
NSArray *internalViaSafari = plist[@"URLValidator"][@"InternalViaSafari"];
NSString *name = internalViaSafari.firstObject;
这里发生的事情是,您从 plist
字典中获取 URLValidator
键下的值。这个值也是一个Dictionary
(这个在你分享的plist截图中可以看得很清楚),所以你得到的是InternalViaSafari
键下的值。该值又是一个 Array
,它的元素是 Strings
。在这个例子中,我从这个数组中提取了第一个条目。
我创建了一个应用程序,我正在尝试访问存储在 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);
据我所知,您不能像那样使用 keyPath
。 InternalViaSafari
不是 URLValidator
词典的 属性。更重要的是 InternalViaSafari
是一个 Array
而不是你的 plist 中的 String
。
为了得到这个字符串,你需要这样的东西:
NSArray *internalViaSafari = plist[@"URLValidator"][@"InternalViaSafari"];
NSString *name = internalViaSafari.firstObject;
这里发生的事情是,您从 plist
字典中获取 URLValidator
键下的值。这个值也是一个Dictionary
(这个在你分享的plist截图中可以看得很清楚),所以你得到的是InternalViaSafari
键下的值。该值又是一个 Array
,它的元素是 Strings
。在这个例子中,我从这个数组中提取了第一个条目。