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>