2011-04-08 83 views
3

我试图加载plist文件在我的应用程序与iOS应用程序中的基本文件结构是什么?

NSBundle* bundle = [NSBundle mainBundle]; 
NSString* plistPath = [bundle pathForResource:@"CategoryData" ofType:@"plist"]; 
categoryProps = [[NSArray alloc] initWithContentsOfFile:plistPath]; 

但categoryProps阵列始终以0对象结束。我已经将CategoryData.plist文件放在我的项目的“支持文件”目录下,但我无法弄清楚如何在编译的应用程序中安排文件。

有人能指点我描述应用程序的文件系统如何布局的文档以及如何确定文件在文件系统中的位置?

我忘了指出的是,我使用的XCode 4不为项目

回答

1

您的加载代码代码应该用于在文件系统中查找文件。在一个项目中,我有:

NSString *data = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"]; 

我会做的是日志plistPath控制台或在调试器中检查它,然后导航到该位置上的磁盘,并确定是否您认为它的plist结束确实。

而且,找到您的应用程序包在/用户/ <#用户名#> /库/开发商/ Xcode中/ DerivedData/<#唯一的应用程序名称#> /编译/产品/调试-iphonesimulator/<#APPNAME#>应用程序,右键点击它并选择“显示包内容”。确保你看到你的plist,你认为你应该。

0

您需要将您的plist文件的资源文件夹中创建一个资源文件夹。然后,你就可以加载并使用它们像这样

NSString *path = [[NSBundle mainBundle] bundlePath]; 
NSString *finalPath = [path stringByAppendingPathComponent:@"Info.plist"]; 
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain]; 

UPD:在xcode4你必须放置在“支持文件”目录而不是“资源”的plist文件。并尝试使用NSDictionary而不是NSArray

+0

@Neuromit正在谈论Xcode 4文件夹结构。没有资源文件夹,但支持文件文件夹。 – Vin 2011-04-08 04:58:40

+0

好的。我在xcode4中工作,但我的项目是在3d版本中创建的。实际上,如果将资源文件添加到项目中,那么资源文件的存储位置并不重要,然后可以加载它们。 – 2011-04-08 05:15:02

+0

使用字典而不是数组解决了问题,谢谢! – slayton 2011-04-08 16:41:19

相关问题