好的,我一直在尝试创建自己的 GKSession 对象,而委托方法在控制台中给了我一个错误,我还没有弄清楚如何修复。我想知道是否有人有任何建议或遇到过这个问题?*请注意 - 变量 peerStatus 在我的代码中的其他地方定义。对等点可以被赋予“kServer”或“kClient”的状态。我宁愿将每个都定义为 GKSessionModeServer 或 GKSessionModeClient,因为我已经阅读过,如果对等点位于 GKSessionModePeer 中,则性能时间实际上会更慢,因为它必须同时完成客户端和服务器的工作。
- (GKSession *)peerPickerController:(GKPeerPickerController *)picker sessionForConnectionType:(GKPeerPickerConnectionType)type {
if (peerStatus == kServer) {
GKSession *session = [[GKSession alloc] initWithSessionID:@"Josh_Land" displayName:nil sessionMode:GKSessionModeServer];
return [session autorelease];
}
else {
GKSession *session = [[GKSession alloc] initWithSessionID:@"Josh_Land" displayName:nil sessionMode:GKSessionModeClient];
return [session autorelease];
}
}
整个错误代码是:
监听端口 56386 2009-06-30 10:31:41.892 GKTank[17756:20b] *** 由于未捕获的异常“GKInvalidArgumentException”而终止应用程序,原因:“必须提供具有 GKSessionModePeer 模式的有效 GKSession 对象,或在 -peerPickerController:sessionForConnectionType: 的实现中创建一个默认的 GKSession 对象 return 'nil'。提供的对象是:发送 0 个数据包:rush(0 个数据包 0 字节):依赖(0 个数据包 0 字节):rtry(0 个数据包 0 字节):sack(0 个数据包 0 字节):当前加权平均 rtt(0 毫秒)会话模式:0' 2009-06-30 10:31:41.893 GKTank [17756:20B]堆栈:(807902715,2452446779,807986683,807986522,927035842,927037074,927038407,815223834,927038949,9245,8562,814709201,815110321, 815119058, 815114270,