从.Plist加载数组

时间:2011-08-08 01:31:05

标签: iphone objective-c xcode nsarray plist

我正在尝试从我的.Plist中的数组加载我的数组,但它无效。

plist看起来像这样:

enter image description here

这是我正在使用的代码:

NSString *path = [[NSBundle mainBundle]pathForResource:@"DiseasePropertyList" ofType:@"plist"];
NSMutableArray *rootLevel = [[NSMutableArray alloc]initWithContentsOfFile:path];
self.myArray = rootLevel;
[rootLevel release];

5 个答案:

答案 0 :(得分:9)

试试这个。请更改文件名。 它工作正常。

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];

NSString *recentFilePath = [documentsDirectory stringByAppendingPathComponent:@"recent.plist"];
NSArray *history = [NSArray arrayWithContentsOfFile:recentFilePath];

答案 1 :(得分:5)

你的plist实际上是一本字典。数组是键“Array”的字典对象。您可以通过选择“Array”并切割(CMD-x),然后粘贴到空的plist(CMD v)中,将plist放入Xcode 4中的数组中。

答案 2 :(得分:2)

NSString *pathStr = [[NSBundle mainBundle] bundlePath];
NSString *finalPath = [settingsBundlePath stringByAppendingPathComponent:@"yourproject.plist"]; 
NSDictionary *settingsDict = [NSDictionary dictionaryWithContentsOfFile:finalPath];

然后查看settingsDict的说明。希望这能帮助你。

答案 3 :(得分:2)

如果您的plist文件在您的应用程序包中,最简单的是:

NSArray *myArray = [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"filename_without_extension" ofType:@"plist"]];

答案 4 :(得分:0)

使用这种方法对我来说很好。

NSArray *country= [NSArray arrayWithContentsOfFile:[[NSBundle mainBundle] pathForResource:@"CountryList" ofType:@"plist"]];