iphone - 从 plist 文件读取时,NSDictionary 包含 <nil> 值

标签 iphone objective-c ios

我目前正在尝试读取 plist 文件并尝试在 UITableView 中显示数据,但是在读取 plist 文件时我得到的数据为零。

编辑

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>
*/

现在字典和数组都没有数据,这是什么原因?如何在 TableView 中同时显示键和值?

最佳答案

您的 plist 文件包含一个数组内部字典。所以要么使用

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>

关于iphone - 从 plist 文件读取时,NSDictionary 包含 <nil> 值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14113207/

相关文章:

ios - 未调用自定义委托(delegate)方法

ios - SKView 无法正确转换 Sprite-Kit Objective-C

ios - 如何在 UIScrollView 上添加 UIViewController View

ios - 我在哪里可以下载旧版本的 AWS-Mobile-SDK

iphone - 在 UITableViewCell 中绘制文本

iphone - 在 iPad 的 DetailViewController ToolBar 上添加工具栏项或按钮

iOS/Parse - 向特定用户发送推送通知

ios - 应用程序在 ios 7 中更改方向时崩溃

objective-c - iOS:从非图像数据生成图像(Godus like landscape)

iphone - Android相当于iphone索引的UITableView