开发者社区> 问答> 正文

读取的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和数组都是空值,不知道应该怎么办。请帮忙谢谢。

展开
收起
爵霸 2016-03-26 10:07:25 2033 0
1 条回答
写回答
取消 提交回答
  • 你的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>
    2019-07-17 19:15:29
    赞同 展开评论 打赏
问答分类:
问答地址:
问答排行榜
最热
最新

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载