Ok, ho cercato di creare il mio oggetto GKSession e il metodo delegate mi dà un errore nella console che non ho ancora capito come risolvere. Mi stavo chiedendo se qualcuno avesse qualche suggerimento o avesse riscontrato questo problema? * Solo una nota: la variabile peerStatus è definita altrove nel mio codice. Al peer può essere assegnato uno stato di "kServer" o "kClient". Preferirei definire ognuno di essi in GKSessionModeServer o GKSessionModeClient perché ho letto che se il peer si trova in GKSessionModePeer, il tempo di esecuzione è in realtà più lento perché deve svolgere il lavoro sia del client che del server.Problemi di GKSession - Objective-C GameKit
- (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];
}
}
Il codice di errore insieme è:
ascolto sulla porta 56386 2009-06-30 10: 31: 41,892 GKTank [17756: 20b] *** terminazione app causa uncaught eccezione 'GKInvalidArgumentException' , motivo: 'È necessario fornire un oggetto vaild GKSession con una modalità GKSessionModePeer o per creare un oggetto GKSession predefinito restituire' nil 'nell'implementazione di -peerPickerController: sessionForConnectionType :. L'oggetto fornito era: inviato 0 pacchetti di dati: rush (0 pacchetti 0 byte): conta (0 pacchetti 0 byte): rtry (0 pacchetti 0 byte): sack (0 pacchetti 0 byte): media ponderata corrente rtt (0 ms) con modalità sessione: 0' 2009-06-30 10: 31: 41,893 GKTank [17756: 20b] Stack: ( 807.902.715, 2.452.446,779 mila, 807.986.683, 807.986.522 , 927.035.842, 927.037.074 , 927.038.407, 815.223.834 , 927038949, 9245, 8562, 814.709.201, 815.110.321 , 815.119.058, 815.114.270 , 814.813.151, 01.235.164,106174 millions814722763, 814.748.641, 839.148.405 , 807.687.520, 807.683.624 , 839.142.449, 839.142.646 ,)
Sarebbe utile se hai postato l'errore che stai ricevendo. –
Spiacente, ho modificato il post con il codice di errore ora. Funziona davvero se eseguo configure GKSession su GKSessionModePeer per entrambi, ma sto cercando di stare lontano da quello. Preferirei che la sessione fosse in modalità Server o Client. Mi stavo chiedendo se questo è anche possibile in questo momento (dove è appena uscito, potrebbe esserci qualche bug nel codice ??) o è il mio codice? –
Non conosco la risposta, ma hai provato per vedere se è effettivamente più lento in ogni modo che conta? Se hai solo letto è più lento, ma in realtà non si vede una performance da esso, allora questa potrebbe essere l'ottimizzazione prematura. Detto questo, sarebbe interessante vedere cosa non va nel test. –