私の知る限り、MKStoreKitがMKStoreManager.m
の次のような方法でのplistとしてあなたの製品のリストを取得します。
#pragma mark Internal MKStoreKit functions
//line 201 of MKStoreManager.m
- (NSDictionary*) storeKitItems
{
return [NSDictionary dictionaryWithContentsOfFile:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MKStoreKitConfigs.plist"]];
}
だから、あなただけ取得するには、例えば、このメソッドの呼び出しを変更した場合あなたのサーバからの新しいアイテムは、必要な結果を得ることができます。
たとえば、事前に作成された.plistを持っていて、NSDictionaryのようにNUSUserDefaultsを移動して、サーバーからの新しいアイテムが来たら、それを更新するだけです。
だから、あなたの方法は、このようなものになります。
- (NSDictionary*) storeKitItems
{
if(![[NSUserDefaults standardUserDefaults]valueForKey:@"NewConfigs"])
[[NSUserDefaults standardUserDefaults]setValue:[NSDictionary dictionaryWithDictionary:[NSDictionary dictionaryWithContentsOfFile:
[[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:@"MKStoreKitConfigs.plist"]]] forKey:@"NewConfigs"];
[[NSUserDefaults standardUserDefaults]synchronize];
return [[NSUserDefaults standardUserDefaults]valueForKey:@"NewConfigs"];
}
おかげニキータを、これは私が何をしたか、本質的です。あなたは正しいです、MKStoreKitは独自の内部plistをフェッチするので、私はちょうどサーバーに問い合わせる(またはサーバーが利用できない場合にキャッシュされた内部リストを返す)自分のメソッドでそのメソッドを傍受しました。 – Murdock