iOS:将字典从 plist 文件加载到数组

标签 ios dictionary load plist

我正在尝试将以下 plist 文件加载到 NSMutableArray

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Item 0</key>
<dict>
    <key>title</key>
    <string>East Coast</string>
</dict>
<key>Item 1</key>
<dict>
    <key>title</key>
    <string>West Coast</string>
</dict>
<key>Item 2</key>
<dict>
    <key>title</key>
    <string>South Rhodes</string>
</dict>
</dict>
</plist>

我正在使用以下 Objective C 代码

- (void)viewDidLoad 
{
    [super viewDidLoad];
    // Load data from the plist file
    NSString *plistPath = [[NSBundle mainBundle] pathForResource:@"Menu" ofType:@"plist"];
    self.menuArray = [NSMutableArray arrayWithContentsOfFile:plistPath];
}

plist 的名称是 Menu.plist。

代码执行后,menuArray 为空。

奇怪的是,Apple 的“QuickContacts”示例代码中使用了相同的代码,而且一切都运行良好。

感谢您的宝贵时间。

最佳答案

你的 plist 文件定义了一个字典;实际上,它的根对象是一个 dict:

<plist version="1.0">
<dict>

所以要将其加载到某种数据结构中,您不妨尝试使用 NSDictionary:

self.menuDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];

或者,您可以更改您的 plist,以便它定义一个字典。如果您使用 Xcode plist 编辑器,这就不容易做到,否则您将面临一些文本编辑工作。

关于iOS:将字典从 plist 文件加载到数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11576564/

相关文章:

ios - WeMo SDK for iOS 架构问题

ios - UIButton 之间的滑动动画

ios - 导致错误的 UIAlertView 按钮操作

iphone - 以编程方式重置 UISearchbar

javascript - 使用 .load(url) 不允许我使用额外的 javascript

image - 如何捕获 svg 图像在 D3 中加载失败的情况?

java.lang.ClassCastException : [Ljava. lang.String;与 java.lang.String 不兼容

python - 一本宽容的字典

java - 如何从 Hashtable<Integer,Hashtable<String,Integer>> h 获取值

php - 使用 PHP 生成的 CSS 移除加载工件