2015-06-30 11 views
27

Aşağıdaki 'koruma gövdesi düşmeyebilir' hatası üreten aşağıdaki koruma snippet'ine sahibim. Sorun nedir?Swift 2: koruma birimi hatadan düşmeyebilir

guard NSFileManager.defaultManager().fileExistsAtPath(appBundlePath) else { 
     print("App bundle doesnt exist") 
} 
+6

Belki de, reddetme için bir yorum bırakmak ister misiniz? Bu cevabın birkaç kişiye yardım ettiği belliydi ... –

cevap

48

guard açıklaması, kapsayan kapsamından programın akışını almak için bir şey olması gerekir (ör büyük olasılıkla vaka işlevinden dönmek için return olduğunu). Koruyucunun korunduğu durum geçerli olmayacağından bu gereklidir, bu yüzden program akışı başka bir yere gitmelidir!

Documentation:

bir koruma ifadesinin else koşulu gereklidir ve birini kullanarak kontrol görevlisi ifadenin içine kapsamı dışında noreturn özelliğinde veya transfer programı ile işaretlenmiş bir işlev çağrısında bulunması gerekiyor aşağıdaki ifadeler:

  • dönüş
  • mola
  • atmak
0

  • bir return açıklama

    dönüş ifadesi bir fonksiyon veya yöntem tanımlaması içinde meydana gelir ve arama fonksiyonu veya yönteme dönmek için program yürütme kullanarak neden düşünün devam etmektedir.