0

我正在 iOS 中开发一款需要互联网连接的游戏。我遇到的问题是当播放器停止播放时在服务器(parse.com)上设置一个布尔值。现在我正在做这个...

-(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

但我不确定什么时候打电话。

有可能使用计时器,但如果玩家从不重新登录,或者很长时间没有登录,我不确定如何使用计时器。

4

2 回答 2

0

对于您当前的处理,您需要启动一个后台任务(请参阅此处),该任务在您发出请求之前开始并在完成块中结束(因此更改您使用的保存方法)。

对于其他情况,这将不起作用,您可能希望添加某种“保持活动”消息/或解析云代码,以监视用户交互并在它们在设定的时间内不活动时自动将其注销。

于 2013-08-20T17:04:04.547 回答
0

如果您的游戏崩溃,您必须获取任何日志,例如: 在此处输入图像描述 或其他。您可以在or方法NSLog(@"worked to the bitter end!");的末尾添加。-(void)playerLoggedOutrequestSentWithDesc

于 2013-08-20T17:04:33.397 回答