我正在尝试使用
在我的应用程序中加载plist文件NSBundle* bundle = [NSBundle mainBundle];
NSString* plistPath = [bundle pathForResource:@"CategoryData" ofType:@"plist"];
categoryProps = [[NSArray alloc] initWithContentsOfFile:plistPath];
但是categoryProps数组总是以0个对象结束。我已将CategoryData.plist文件放在我的项目中的“Supporting Files”目录下,但我无法弄清楚文件在编译的应用程序中的排列方式。
有人能指出我的文档描述应用程序的文件系统是如何布局的,以及如何确定文件在文件系统中的位置?
我忘了指出我使用的XCode 4没有为项目创建资源文件夹
答案 0 :(得分:1)
您的加载代码代码应该用于在文件系统中查找文件。在一个项目中,我有:
NSString *data = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
我要做的是将plistPath记录到控制台或在调试器中检查它,然后导航到磁盘上的那个位置并确定plist是否最终在你认为的位置。
此外,在/ Users /<#Username#> / Library / Developer / Xcode / DerivedData /<#Unique Appname#> / Build / Products / Debug-iphonesimulator /< #Appname中找到您的应用程序包#> .app,右键单击它并选择“显示包内容”。确保您在自己认为应该的位置看到您的plist。
答案 1 :(得分:0)
您需要将plist文件放在Resources文件夹中。然后你就可以像这样加载和使用它们了
NSString *path = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [path stringByAppendingPathComponent:@"Info.plist"];
NSDictionary *plistData = [[NSDictionary dictionaryWithContentsOfFile:finalPath] retain];
UPD:在xcode4中,您必须将plist文件放在“Supporting Files”目录而不是“Resources”中。并尝试使用NSDictionary而不是NSArray