2 daffodilgirl DaffodilGirl 于 2013.01.05 16:03 提问

读取的NSDictionary包含空值

在plist文件读取的值显示在UITableView中时是空值

plist

<?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">
<array>
    <dict>
        <key>Title</key>
        <string>Mr</string>
        <key>First Name</key>
        <string>xxxxxx</string>
        <key>Last Name</key>
        <string>yyyyyyy</string>
        <key>Designation</key>
        <string>Senior Engineer</string>
    </dict>
</array>
</plist>

代码:

NSString *path = [[NSBundle mainBundle] pathForResource:@"Data" ofType:@"plist"];

NSDictionary *dict = [[NSDictionary alloc] initWithContentsOfFile:path];

NSArray *valueArray = [dict allKeys];

/*
Printing description of path:
/Users/rock/Library/Application Support/iPhone Simulator/6.0/Applications/2567D2B3-56D4-4464-9EFC-CAB923ABE955/PlistTableView.app/Data.plist
Printing description of dict:
<nil>
Printing description of valueArray:
<nil>
*/

现在的结果是dictionary和数组都是空值,不知道应该怎么办。请帮忙谢谢。

1个回答

redCoral_
redCoral_   2013.01.05 17:05

你的plist包含了dictionary在array里。
因此可以用:

NSArray *array = [[NSArray alloc] initWithContentsOfFile:path];
NSDictionary *dict = [array objectAtIndex:0];

或者修改plist结构

<plist version="1.0">
<dict>
    <key>Title</key>
    <string>Mr</string>
    <key>First Name</key>
    <string>xxxxxx</string>
    <key>Last Name</key>
    <string>yyyyyyy</string>
    <key>Designation</key>
    <string>Senior Engineer</string>
</dict>
</plist>
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!