我正在开发一款需要互联网连接的iOS游戏。我遇到的问题是当播放器停止播放时在服务器(parse.com)上设置Bool。现在我正在这样做......
-(void)applicationDidEnterBackground:(UIApplication *)application
{
NSLog(@"Player logged out");
[self playerLoggedOut];
}
和
-(void)playerLoggedOut
{
PFUser *currentUser = [PFUser currentUser];
if (currentUser) {
[currentUser setObject:[NSNumber numberWithBool:NO] forKey:@"playing"];
[currentUser saveEventually];
[sharedInstance requestSentWithDesc:@"Player logged out"];
}
}
但这似乎不起作用,当我认为上述内容永远不会被调用时,游戏也会崩溃。
还有......
-(void)applicationWillTerminate:(UIApplication *)application
但我不确定什么时候打电话。
有可能使用计时器,但如果播放器从未重新登录,或者很长时间没有登录,我不确定如何使用计时器。
答案 0 :(得分:0)
对于当前的处理,您需要启动后台任务(请参阅here),该任务在您发出请求之前启动并在完成块中结束(因此请更改您使用的保存方法)。
对于其他情况,这将不起作用,您可能希望添加某种“保持活动”消息和/或解析监视用户交互的云代码,如果它们对于集合不活动则会自动将其记录出来时间。
答案 1 :(得分:0)
如果您的游戏崩溃,您必须获取任何日志,例如:
或者是其他东西。您可以在NSLog(@"worked to the bitter end!");
或-(void)playerLoggedOut
方法的末尾添加requestSentWithDesc
。