Iphone GK会话问题-Objective-C GameKit
好的,我一直在尝试创建我自己的GKSession对象,委托方法在控制台中给了我一个错误,我还没有弄清楚如何修复这个错误。我想知道是否有人有任何建议或遇到过这个问题*请注意——变量peerStatus在我的代码中的其他地方定义。对等方的状态可以是“kServer”或“kClient”。我宁愿将每个节点定义为GKSessionModeServer或GKSessionModeClient,因为我已经读到,如果对等节点位于GKSessionModePeer中,性能时间实际上会变慢,因为它必须同时完成客户端和服务器的工作Iphone GK会话问题-Objective-C GameKit,iphone,objective-c,cocoa-touch,gamekit,Iphone,Objective C,Cocoa Touch,Gamekit,好的,我一直在尝试创建我自己的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]***由于未捕获的异常“GKValidargumentException”而终止应用程序,原因:“必须提供具有GKSessionModelPeer模式的有效GKSession对象,或者在-peerPickerController:sessionForConnectionType:的实现中创建默认GKSession对象返回“nil”。提供的对象为:发送了0个数据包:rush(0个数据包0个字节):REQUE(0个数据包0个字节):rtry(0个数据包0个字节):sack(0个数据包0个字节):会话模式下的当前加权平均rtt(0毫秒):0'
2009-06-30 10:31:41.893吉凯恩油罐[17756:20b]烟囱:(
807902715,
2452446779,
807986683,
807986522,
927035842,
927037074,
927038407,
815223834,
927038949,
9245,
8562,
814709201,
815110321,
815119058,
815114270,
814813151,
814722763,
814748641,
839148405,
807687520,
807683624,
839142449,
839142646,
814752238
)我还没有真正使用GameKit实现任何东西,但只要看一下文档,似乎只有在使用GKSessionModelPeer时才能使用GKPeerPickerController。如果要使用GKSessionModeServer/Client,则需要直接使用会话及其委托。请参阅《游戏工具包编程指南》中关于和的部分 您的主要功能将围绕gksessionelegate方法展开
-会话:对等:didChangeState:
在客户端和服务器模式下,以及-acceptConnectionFromPeer:error:
和-denyConnectionFromPeer:
处于服务器模式。如果您发布了收到的错误,将非常有用。抱歉,我现在用错误代码编辑了文章。如果我同时运行GKSession到GKSessionModelPeer的配置,它实际上是有效的,但我正试图避免这样做。我宁愿将会话指定为服务器模式或客户端模式。我想知道这是不是现在就有可能(刚出来的地方,代码中可能有一些bug??)或者是我的代码?我也不知道答案,但是你有没有测试过,看看它是否真的在任何方面变慢了?如果您只是读过它的速度较慢,但实际上没有看到它对性能的影响,那么这很可能是过早的优化。也就是说,看看你的测试出了什么问题会很有趣。