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

4
我正在尝试将以下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为空。

奇怪的是,在苹果公司的“QuickContacts”示例代码中使用相同的代码一切都正常工作。

感谢您的时间。

1个回答

13

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

<plist version="1.0">
<dict>

因此,为了将其加载到某个数据结构中,您可以尝试使用NSDictionary:

self.menuDictionary = [NSMutableDictionary dictionaryWithContentsOfFile:plistPath];

或者,您可以更改plist文件,使其定义一个字典。如果您使用Xcode的属性列表编辑器,则这样做并不容易,否则您需要进行一些文本编辑。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接