我有一个具有完整版和精简版(包括应用内购买)的应用程序,问题是当我购买应用程序时,精简版会加载所有完整的东西,但是当我关闭应用程序并再次打开它时,它不加载完整的菜单和所有的东西,包括完整版本。当我正在修改其他人所做的代码时,我不太了解如何设置一些东西(如级别、图标或购买应用程序所做的特殊事情)以不出现在精简版上,但完全可以。
我在应用程序委托中找到了这个:
-(void)setLite:(bool)value
{
lite = value;
[self saveUserDefaults];
}
-(void)loadUserDefaults
{
NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults];
if(prefs)
{
wasExecuted = [[prefs objectForKey:@"wasExecuted"] boolValue];
lite = [[prefs objectForKey:@"lite"] boolValue];
if(!wasExecuted)
lite = YES;
// if(wasExecuted)
// lite = NO;
}
}
-(void)saveUserDefaults
{
NSUserDefaults * prefs = [NSUserDefaults standardUserDefaults];
if(prefs)
{
[prefs setObject:[NSNumber numberWithBool:executed] forKey:@"executed"];
[prefs setObject:[NSNumber numberWithBool:lite] forKey:@"lite"];
}
}
这就是它在交换机上的使用方式(例如):
case 7:
if(appDelegate.lite)
{
[self showSubInfo:@"xxxxx.png" btnClosePos:CGPointMake(0, 0)];
// [self xxxxxlite];
}
else
{
NSLog(@"xxxx");
storyBoardPage7 *xxxxx = [[xxxxx alloc]init];
xxxx.modalTransitionStyle = MODAL_TRANSITION_STYLE;
[rootViewController xxxx animated:YES];
[xxxx release];
}
这是 IAP 成功时触发的方法:
-(void) changeMenuToFull {
NSLog(@"Buy complete");
[appDelegate setLite:NO];
[self removeLiteMenu];
[self loadFullMenu];
}
但我不知道为什么它在关闭菜单时不保存菜单...
谢谢阅读。