我正在为我的应用实施应用内购买。因此,我使用的是 com.companyname.product.feature 的产品标识符格式。产品标识符用于应用内购买(在沙盒中运行良好),并且作为用户默认知道产品已被购买。当用户购买产品时,com.companyname.product.feature 用户默认设置为 true。除以下内容外,一切正常。
我的视图控制器之一正在监听用户默认更改,以便它可以根据产品购买修改其行为。但是,控制器永远不会收到用户默认更改的通知。我过去曾多次实施这种类型的观察,但这不起作用。会不会和“。”有关?在关键路径中(我以前从未做过)?
在我的应用委托中:
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 的帮助。
- 约翰