2016-04-09 15 views
0

Oyun Merkezi'ni kullanarak bir oyun yaptım. Her şey bir şey dışında harika çalışıyor. Yeni bir eşleşme oluştururken, yeni bir eşleşme oluşturduğunda yaklaşık 1 tanesinin yaklaşık 1'i, rastgele bir rakiptir veya bir arkadaşınızı davet ederek, konsolumda bu hatanın yazdırılmasıyla uygulamam çökebilir: Önemli hata: Beklenmedik şekilde sıfır bulunurken isteğe bağlı bir değer . Xcode ayrıca, beni crashBasedMatchmakerViewController: didFindMatch: delegate yöntemi olan "konum" a yönlendirir. Aşağıda, kodun hangi satırda gerçekleştiğini görebilirsiniz.Uygulama bazen turnBasedMatchmakerViewController çöküyor: didFindMatch: delege yöntemi

Neden çoğu zaman çalışır ve bazı nadir zamanlar çöküyor, hiçbir fikrim yok.

Bu hatayı düzeltmek gerçekten çok zordur, zira kazasızlığı gerçekleştirmeye çalışmak için 5 saat harcayabiliyorum. Ben kendim, çok uzun bir süre içinde bu çökme yaşamadım, ama benim app incelerken elma inceleme ekibi bu çökme vardı. böylece yardım her türlü ölçüde

+0

Hata iletisi, 'match.participants! [0]' ın 'nil' olabileceğini gösterir. Bu kilitlenmeyi düzeltmek için 'if let 'sözdizimini kullanın (" İsteğe bağlı değer "hata iletilerini kopyalarken beklenmedik şekilde bulunan tüm" olduğu gibi). Temel olarak, zorla kaldırma isteğe bağlı seçenekler, kötü, kötü bir fikirdir. –

cevap

0

Değiştir takdir,

func turnBasedMatchmakerViewController(viewController: GKTurnBasedMatchmakerViewController, didFindMatch match: GKTurnBasedMatch) { 
    currentMatch = match 
    presentingViewController.dismissViewControllerAnimated(true, 
     completion: nil) 
    let firstParticipant = match.participants![0] as GKTurnBasedParticipant //This is where my app crashes! 
    if firstParticipant?.lastTurnDate == nil { 
     delegate!.enterNewGame(match) 
    } else { 
      if match.currentParticipant?.player!.playerID == GKLocalPlayer.localPlayer().playerID { 
       delegate!.takeTurn(match) 
      } else { 
       delegate!.layoutMatch(match) 
      } 
     } 
    } 

bu App Store benim ilk uygulaması var benim yolunda önündeki tek şeydir Tespit:

Bu

benim kodudur delegate!. - delegate?. her yerde.