2011-09-23 63 views
0

我创建了一个名为list.plist的plist,我只是无法读取其中的信息。为什么我不能使用我创建的plist?

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSString *datapath = [path stringByAppendingPathComponent:@"list.plist"]; 
NSArray *array = [[NSArray alloc] initWithContentsOfFile:datapath]; 
self.tableDataSource = array; 
NSLog(@"%d", [tableDataSource count]); 

当我运行它,它说计数为0,但如果我更改文件名Elements.plist(从苹果的示例代码的plist),它会工作。这两个文件位于相同的路径中。 list.plist是我自己编写的,即使我将dictionary.plist复制到list.plist,它也不起作用。

回答

0

文件名在iOS,FYI中区分大小写。另外,尝试将样本中的Elements.plist重命名为list.plist,然后重试。也许是关于文件内容,而不是文件名。

+0

如果我将Element.plist重命名为list.plist,它不起作用!但如果我将它重命名为list1.plist,它就可以工作!无论list.plist(我创建的文件)的名称重命名为,它都不会起作用。 – Terry

+0

List.plist是否有可能是您的项目信息plist的名称,即用作iOS上的应用程序清单的名称?检入项目设置。该文件有点特别。 –

0

检查您创建的文件是否包含在构建的“复制资源”阶段中。这是确保在运行时从项目目录复制到包的位置所必需的。

在Xcode 4中,您可以通过选择项目导航器顶部的项目来完成。单击“Build Phases”选项卡并展开“Copy Bundle Resources”部分。您应该看到复制的文件列表。如果你看到Elements.plist文件而不是list.plist,那就是你的问题。将list.plist从项目导航器拖到复制文件列表并重建。

+0

他们都在那里。 – Terry

+0

我建议你在设置dataPath之后添加一个NSLog,以查看在模拟器中运行时你尝试访问的路径。一旦知道它正在加载的完整路径,请通过查找器查看该路径是否存在。如果一切看起来都不错,那么你可能会考虑发布你的plist文件的内容:或许这里有一些格式化的东西。 –

+0

NSLog结果与/user/....../Reg3.app/list.plist类似,我无法在查找程序中找到它,因为我可以找到Reg3.app文件。如果我将代码中的路径更改为完整路径(如/Users/terry/Documents/Reg3/Reg3/list.plist),问题仍然存在。 – Terry

相关问题