我的游戏中有三种不同的级别,用户可以选择。我在GKMatchRequest的playerGroup属性中保存了玩家所选的等级。在比赛结束后,如何从GKTurnBasedMatch中检索playerGroup,或者有不同的方式来跟踪哪个比赛级别匹配?如何从GKTurnBasedMatch中检索playerGroup属性?
2
A
回答
1
创建GKMatchRequest后,您必须调用findMatchForRequest。在findMatchForRequest的完成处理程序中,您可以将游戏的级别存储在新匹配的matchData属性中。
1
我使用GKTurnBasedMatchmakerViewController来呈现自动匹配/邀请UI。当创建一个GKMatchRequest,我添加ObjC相关playerGroup值(打包成一个NSNumber)到GKTBMVC这样的:
GKMatchRequest *request = [[GKMatchRequest alloc] init];
request.playerGroup = somePlayerGroup;
GKTurnBasedMatchmakerViewController *mmvc = [[GKTurnBasedMatchmakerViewController alloc] initWithMatchRequest:request];
objc_setAssociatedObject(mmvc,
&kPlayerGroupKey,
[NSNumber numberWithInteger:request.playerGroup],
OBJC_ASSOCIATION_RETAIN);
[myViewController presentViewController:mmvc
animated:YES
completion:nil];
然后在turnBasedMatchmakerViewController:didFindMatch:
委托方法我读了playerGroup
值就知道我们需要什么样的比赛建立或加入:
- (void)turnBasedMatchmakerViewController:(GKTurnBasedMatchmakerViewController *)mmvc didFindMatch:(GKTurnBasedMatch *)match
{
[myViewController dismissViewControllerAnimated:YES
completion:^{
NSNumber *n = objc_getAssociatedObject(mmvc, &kPlayerGroupKey);
NSInteger playerGroup = [n integerValue];
[self switchToMatch:match matchKind:playerGroup];
}];
}
当然,你创建一个新的比赛时,可以存储在playerGroup
match.matchData
,但有时它更方便与婚介视图控制器通过。
相关问题
- 1. 如何从表中检索源属性?
- 2. 如何从SubnodeConfiguration中检索xml属性?
- 3. 如何从属性检索drawable参考
- 4. 如何从xml检索属性
- 5. 如何检索LoaderException属性?
- 6. 如何检索employeeid属性
- 7. 如何检索@IndexedEmbedded属性?
- 8. 从XML属性检索值
- 9. 从检索属性节点
- 10. 从POM中的classpath中检索属性
- 11. 检索属性
- 12. C#从属性中检索字段名
- 13. 从html'value'属性中检索值
- 14. 无法从展开中检索属性
- 15. 如何检索C#中属性的属性?
- 16. 从UITypeEditor中,检索应用于属性父项的属性.net
- 17. 如何从数据绑定中检索对象属性信息
- 18. 如何从JSON对象中检索属性?
- 19. 如何从xml中检索属性的所有实例
- 20. 如何从C++中检索QML属性的值
- 21. 检索属性和Java中
- 22. GKTurnBasedMatch检测邀请
- 23. 如何搜索XML中的特定属性以检索另一个属性?
- 24. 如何检索一个RDF属性
- 25. 如何检索属性类powershell
- 26. 如何检索属性的值
- 27. 如何检查索引属性?
- 28. 如何根据其他文档属性检索动态属性?
- 29. 从接口方法检索属性
- 30. 从函数参数检索属性