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