2016-03-25 17 views
-1

https://www.raywenderlich.com/109706/firebase-tutorial-getting-started'daki Swift Firebase eğiticisini takip ediyordum ve birkaç sorunla karşılaştı.Firebase Öğretici ölümcül hata: beklenmedik bir şekilde isteğe bağlı bir değer çıkarılırken sıfır bulundu

ben "ölümcül hata alıyorum çalıştırmayı deneyin. İsteğe bağlı değer unwrapping ederken beklenmedik nil bulundu

yerine kod fotoğraflarını yazabilmek için üzgünüm ama nereden başlayacağımı bilmiyordum ve vermedi tüm projeyi/kopyalamak yapıştırmak istediğiniz İşte

GitHub'dan yayınlanan komple bir projedir. https://github.com/kjg531/parasnews

stacktrace

enter image description here

enter image description here

+0

Lütfen yazınızı, metnin metin parçacığı, çökmekte olan satırın yanı sıra Firebase verilerinizin metin sürümüyle güncelleyebilir misiniz? Yeniden yazmamız gerekmeyeceği için bu çok zaman kazandıracaktır. Bu çöküş, yapınızın yanı sıra başka şeylerden de kaynaklanabilir. – Jay

+0

* name * değişkenine bakmak başlamak için iyi bir yerdir. Bir örtülü olarak isteğe bağlı isteğe bağlı geçersizse ve sarılmış değerine erişmeye çalıştığınızda bir çalışma zamanı hatası tetikleyeceğini unutmayın. Sorunuzdan kopyalayama/yapıştıramamadığım için bunu bir yorum olarak yapacağım: Init (snapshot ...) yöntemindeki tüm değişken atamaları yorumlama ve baskı ile değiştirmeyi öneririm ("\\ (snapshot.value) ") anlık görüntüsünün (ve adın) geçerli olup olmadığını öğrenmek için: – Jay

cevap

0

Bence "ad" anahtar yok veya bu nedenle "ad" tuşuna Olacak otomatik ayarlanan nil mevcut değilse bu

init(snapshot: FDataSnapshot) { 
    key = snapshot.key 
    name = snapshot.value["name"] as? String 
    addedByUser = snapshot.value["addedByUser"] as? String 
    completed = snapshot.value["completed"] as? Bool 
    ref = snapshot.ref 
    } 

gibi kod yazmak Firebase üzerinde eklenmez model sınıfında isim değeri.

+0

Bunu da denedim.Görüntüyü (viewDidAppear() ile karşılaşır ulaşmaz –

0

Böyle kod yazmak gerekir:!

name = snapshot.value!["name"] as? String 
addedByUser = snapshot.value!["addedByUser"] as? String 
completed = snapshot.value!["completed"] as? Bool 

Değiştir snapshot.value [ "blabla"] Bu snapshot.value için [ "blabla"]. Çalışır n

İlgili konular