Iphone 访问Plist阵列/节点-目标C

Iphone 访问Plist阵列/节点-目标C,iphone,arrays,string,plist,Iphone,Arrays,String,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="

我有一个属性列表文件,用于存储问题和答案数据。在这个文件中我有一个数组集合,在这些数组中我存储了不同的类别和问题。但是,我似乎无法访问此数据

财产档案

<?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>Category1</key>
<array>
    <array>
        <string>Question1</string>
        <string>Answer1</string>
    </array>
    <array>
        <string>Question2</string>
        <string>Answer2</string>
    </array>
    <array>
        <string>Question3</string>
        <string>Answer3</string>
    </array>
    <array>
        <string>Question4</string>
        <string>Answer4</string>
    </array>
</array>
</dict>
</plist>

您应该为plist文件的完整路径提供
arrayWithContentsOfFile:
。以下方面应起作用:

NSString* filePath = [[NSBundle mainBundle] pathForResource:@"questions" ofType:@"plist"];
categories = [NSArray arrayWithContentsOfFile:filePath];

属性列表的根对象是字典,而不是数组

从顶部拆下这些线:

<dict>
<key>Category1</key>

类别1
这一行从结尾开始:

</dict>

另外,按照@murat的建议,导出文件的正确路径,而不是普通字符串


一般来说,对于此类问题,调试器是您的朋友。在方法中放置一个断点,并在每个阶段(导出路径、提取数组)检查要得到的值

你能在文本编辑器中打开你的属性列表,然后发布开始行吗?该屏幕截图看起来不正确,第一个条目应称为“Root”,通常不能通过plist编辑器进行编辑。您的根对象是无效的属性列表或字典-在调试器中,检查您的类别数组初始化为什么。现在刚刚添加了它供您查看。感谢您的帮助,我怀疑这是一个简单的修复,在解决了一些问题后,它起到了很好的作用。谢谢你应该问一个单独的问题。
<dict>
<key>Category1</key>
</dict>