まず、アプリ内購入にAppleのサービスを利用してみませんか?なぜ独自の実装を使用するのですか?よくわかりませんが...Appleの承認を得ると思いますか?私が覚えている限り、Amazonは過去に同様のことをしましたが、彼らはそれを理解していませんでした。
2番目:この目的にはNSDataを使用しません。有効なプロパティリストがある場合は、それを使用するのが最適なソリューションです
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfURL:[NSURL URLWithString:@"foobar.com/plistfile.plist"]];
次に、この辞書を保存できます。正直なところ、私はあなたのソリューションを使用することをお勧めしません。私があなたを正しく理解していれば、しばらくすると何千ものplistができます。私の提案:たとえば、AppDelegateのivarとして「グローバル」な可変辞書を使用します。これは最初は空である必要があります。次に、上記のようにヘルパー辞書をダウンロードし、グローバル辞書に次のように入力します
[[delegateInstance globalDictionary] addEntriesFromDictionary:dict];
新しいデータを取得するたびに。
で保存
[[delegateInstance globalDictionary] writeToFile:@"path" atomically:YES];
アプリが起動するたびに回復します。
編集:
もちろん、そのようにすることもできます。これらのplistが実際に情報を格納している場合、それは問題ありません。たとえば、請求情報をそこに保存して、他のユーザーと交換できないようにすることができます(または少なくとも交換できないようにする必要があります)。ただし、ユーザーが特定のレベルを購入した場合、または1つのplist内で情報を組み合わせることを検討しない場合にのみ質問に関する情報を取得したい場合(上記のとおり)。とにかく:ユーザーがデータを取り戻す可能性を検討してください。誰かが誤ってアプリを削除したと考えてください。彼の購入品がすべて失われたことを彼にどのように説明したいですか?アプリ内購入の方が安全です。
または少なくとも:領収書のコピーをサーバーに保存し、ユーザーがログインして過去に支払った金額を収集できるようにします;-)
楽しんで頑張ってください!:-)