当我将plists-file添加到我的XCode项目时,我的iPad应用程序似乎无法读取它。
例如:我的项目文件夹(xproj文件所在的文件夹)中有massCategories.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">
<dict>
<key>Item 1</key>
<dict>
<key>Key 1</key>
<string>Value 1</string>
<key>Key 2</key>
<string>Value 2</string>
</dict>
<key>Item 2</key>
<dict>
<key>Key 3</key>
<string>Value 3</string>
<key>Key 4</key>
<string>Value 4</string>
</dict>
</dict>
</plist>
在我的ViewController中,我有以下方法:
- (void)viewDidLoad
{
[super viewDidLoad];
NSBundle *mainBundle = [NSBundle mainBundle];
NSString *plistData = [mainBundle pathForResource:@"MassCategories" ofType:@"plist"];
NSArray *massCategories = [[NSArray alloc] initWithContentsOfFile:plistData];
// breakpoint
}
当运行(并在断点处“暂停”)时,massCategories包含nil。 将plist文件添加到另一个文件夹似乎不起作用(或者我必须使用错误的文件夹,这很可能: - ))。
有什么建议吗?
答案 0 :(得分:1)
确保您的命名正确。您说该文件名为'massCategories.plist',但您尝试加载@“MassCategories”。 iOS区分大小写。
答案 1 :(得分:0)
知道了!
只需更新plist,使得main元素是一个数组(正如我在尝试将其作为数组导入时所期望的那样):
<?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>
...
</array>
</plist>