Not sure about how you created your plist, but this post about using NSDictionary should should answer your question: https://stackoverflow.com/a/1760384/388412
...it's basically the same for NSArray, both classes can store objects and read from and write to file/URL (thus reading and writing plists).
So, you probably should have rather started with a dictionary or array and write that to file to create a plist. As the other way round might cause problems depending on the format of your specific plist.
As for more complex serialization, you should look into the NSCoding protocol. With that you can serialize and deserialize whole object trees (using NSArchiver and NSUnarchiver). Though, don't use NSArchiver/NSUnarchiver separately, better make your classes NSCoding compliant.
If your case is less complex, I recommend starting with NSDictionary / NSArray serialization as it's a bit easier to handle.