0

アプリ用にアプリ内購入を実装しています。そのため、com.companyname.product.feature の製品 ID 形式を使用しています。製品 ID は、アプリ内購入 (サンドボックスで正常に機能しています) に使用され、製品が購入されたことを知るためのユーザーのデフォルトとして使用されます。ユーザーが製品を購入すると、com.companyname.product.feature ユーザーのデフォルトが true に設定されます。以下を除いて、すべてが機能しています。

私のView Controllerの1つは、ユーザーのデフォルトの変更をリッスンしているため、製品の購入に基づいて動作を変更できます。ただし、ユーザーのデフォルトの変更がコントローラに通知されることはありません。過去にこの種の観測を何度も実装しましたが、うまくいきません。「。」と何か関係があるのでしょうか。キーパスで(これまでに行ったことがない)?

私のアプリデリゲートで:

NSString *const PHKeyIAPFeature = @"com.companyname.appname.feature";  // also the product ID for the features

私のオブザーバーでは:

  [[NSUserDefaults standardUserDefaults] addObserver:self forKeyPath:PHKeyIAPFeature options:NSKeyValueObservingOptionNew context:NULL];

私の IAP マネージャーでは:

  [[NSUserDefaults standardUserDefaults] setBool:TRUE forKey:productIdentifier];

ここで、productIdentifier = PHKeyIAPFeature です。

アプリを再起動すると、更新されたユーザー デフォルトが反映されるため、製品の購入時にユーザー デフォルトが更新されることはわかっています。

何か案は?助けてくれたTIA。

--ジョン

4

0 に答える 0