pListファイルは、以下のようにNSDictionaryに簡単に読み込むことが可能です。
NSDictionary *dic = [NSDictionary dictionaryWithContentsOfFile:@"ファイルパス"];
しかしながら、NSDictionaryはimmutableなオブジェクト、つまり書き換え不可能なクラスなので、中身を編集したい、という用途ではいちいち作り直さないといけません。
しかも必要であれば表面だけでなく再帰的にやらないといけません。
できることなら読み込んだ瞬間からmutableでやりたいですね。パフォーマンス的にも、コードのシンプルさとしても。
というわけで方法があります。
NSString *errorDesc;
NSMutableDictionary *dic = [NSPropertyListSerialization propertyListFromData:[NSData dataWithContentsOfFile:@"ファイルパス"]
mutabilityOption:NSPropertyListMutableContainers
format:nil
errorDescription:&errorDesc];
この方法の良いところは、再帰的に内部のコンテナを全部編集可能な(Mutableな)クラスで読み込んでくれるという点です。
NSDictionaryではなく、NSMutableDictionary
NSArrayではなく、NSMutableArray
にしてくれるわけです。
NSPropertyListMutableContainersがその指定です。
指定するフラグはもう数種類あるので確認してみると良いとおもいます。