我已经阅读了有关 Blocks 的 Apple 文档,但我不太确定如何在我的情况下使用它们。在我的应用程序中,我有一个游戏模型。这有一种方法可以创建两个用户的游戏。
我从一个视图控制器调用游戏模型中的方法,一旦创建了游戏,我需要对我的视图控制器进行回调,说明它是成功的,并且可以推送一个新的 VC。
当前代码
游戏模型
+(void)createNewGameAgainst:(PFUser *)user2 {
NSLog(@"createNewGameAgainst");
// First we put a HUD up for the user on the window
MBProgressHUD *HUD = [[MBProgressHUD alloc] initWithWindow:[UIApplication sharedApplication].keyWindow];
[[UIApplication sharedApplication].keyWindow addSubview:HUD];
HUD.labelText = NSLocalizedString(@"HUDCreateNewGame", @"HUD - Create New Game text");
HUD.removeFromSuperViewOnHide = YES;
[HUD showAnimated:YES whileExecutingBlock:^{
// Do something
PFObject *newGame = [PFObject objectWithClassName:@"Game"];
[newGame setObject:[PFUser currentUser] forKey:kMESGameUser1];
[newGame setObject:user2 forKey:kMESGameUser2];
[newGame saveInBackgroundWithBlock:^(BOOL succeeded, NSError *error) {
if (succeeded) {
NSLog(@"succeeded game creation");
}
}];
}];
NSLog(@"end of createNewGameAgainst");
}
查看控制器调用
[MESGameModel createNewGameAgainst:self.gameNewOpponentuser];
我需要知道如何更新我上面的方法以获得回调块。然后更新视图控制器对该方法的调用,以便在创建成功时执行/推送新的视图控制器。