When I am creating a simple application for plist shown in below link:
http://iosdevelopertips.com/data-file-management/reading-a-plist-into-an-nsarray.html
When I am debugging it.. I am getting path of my plist file. But when I am using the following statement
// Build the array from the plist
NSMutableArray *array2 = [[NSMutableArray alloc] initWithContentsOfFile:path];
I don't get any value in array2... What could be the problem?
The problem could be
nil
inarray2
.nil
inarray2
too.When using
NSString *path = [[NSBundle mainBundle] pathForResource:@"DrinkArray" ofType:@"plist"];
, it assumes you have a correctly formed plist file named "DrinkArray" ('DrinkArray.plist'), inside your app bundle. Make sure your file is also copied into the app bundle (check this in Xcode, click on your project, then Build phases, your file should appear in the 'Copy Bundle Ressources').I guess you get
nil
as the path to the file, and therefore inarray2
. Try to log your path string to check it.Here is the final solution that i got for plist....
When u are creating your plist file with first element as Array.. then its XML Contents will be as below:
Here you are having unnecessary tag instead of which we should have as your root element must be Array... because u are taking in NSMutableArray object...
so your plist file must be like this
i have checked that its working fine....
In xcode 5 > make sure the file is in your compile sources area.
I think you could try something like this:
If that helped, please, drop a line. :)
Cheers, Kamil