Array不会从plist加载数据

MrS*_*oot 6 iphone objective-c plist nsarray

我不确定我的问题究竟是什么,因为我现在已经使用这种方法一段时间了,从来没有遇到过这个问题.

基本上,正如标题所说.此代码从位于"Resources"组中的plist加载数据

NSString *myFile = [[NSBundle mainBundle] pathForResource:@"myList" ofType:@"plist"];
myArray = [[NSArray alloc]initWithContentsOfFile:myFile];
NSLog(@"%@", myArray);
Run Code Online (Sandbox Code Playgroud)

它显示(null).谁知道为什么?

我在同一个ViewController中有另一个设置并且工作得很好.然而,这个特定的钳子不会加载.我甚至还删除了plist,只是从另一个创建了一个副本,以确保不是结构问题.

我做错了吗?我应该使用FileManager吗?

更新------------------------------------------------- ------------------------

好吧,我无法相信我要说的话.大声笑

我正在使用XCode 4,你在Xcode中编辑plists的方式与Xcode 3.x不同.和早期版本一样,你可以选择你想要的plist的根(数组,字典等)我的问题是我试图加载到NSArray中的plist实际上是一个结构化的字典.但是我从来没有在Xcode中看到这个,除了使用TextEdit或其他文本编辑器浏览内容之外,我不知道如何看到这个.

我必须说,很傻.有谁知道为什么XCode 4不会像XCode 3.x那样显示plist的根?

XCode 3.x:http://dl.dropbox.com/u/919254/XCode3.png

XCode 4:http://dl.dropbox.com/u/919254/Screen%20shot%202011-04-10%20at%202.30.35%20AM.png

Dav*_*vid 3

请改用字典。我对 NSArrays 和属性列表有未定义的行为。例如

NSString *myFile = [[NSBundle mainBundle] pathForResource:@"myList" ofType:@"plist"];
NSMutableDictionary* myDict = [[NSMutableDictionary alloc]initWithContentsOfFile:myFile];
NSLog(@"%@", myDict);
Run Code Online (Sandbox Code Playgroud)