2016-03-24 29 views
0

ölümcül hataya neden olur this card flipping tutorial takip ediyorum ve UIView ve UIImageViews programlı olarak oluşturmak yerine bunları storyboard'umda oluşturdum.
Ben kartı, animasyon tekmeler tıklayarak ön görüntüye çeviriyor, ama tekrar tıkladığınızda bu bir fatal error oluşturduğunda: İsteğe Bağlı değerini unwrapping ederken flip kart hızlı bir şekilde

beklenmedik nil bulundu.

Bu hatanın neden oluştuğunu anlayamıyorum. İşte

yukarıda belirtilen yazının dönüşümdür kod şudur: Ne geçiş yaparken, eski resmin başvuru indirildiği sayısıdır inanıyoruz

class FirstViewController: UIViewController { 

@IBOutlet weak var flashCardView: UIView! 
@IBOutlet weak var backImage: UIImageView! 
@IBOutlet weak var frontImage: UIImageView! 


var showingBack = true 

    override func viewDidLoad() { 
     super.viewDidLoad() 

     let singleTap = UITapGestureRecognizer(target: self, action: Selector("tapped")) 
     singleTap.numberOfTapsRequired = 1 

     flashCardView.addGestureRecognizer(singleTap) 
     flashCardView.addSubview(backImage) 
     view.addSubview(flashCardView) 
    } 

    func tapped() { 
     if (showingBack) { 
      UIView.transitionFromView(backImage, toView: frontImage, duration: 1, options: UIViewAnimationOptions.TransitionFlipFromRight, completion: nil) 
      showingBack = false 
     } else { 
      UIView.transitionFromView(frontImage, toView: backImage, duration: 1, options: UIViewAnimationOptions.TransitionFlipFromLeft, completion: nil) 
      //here I get the error when flipping the card back to the back image 
      showingBack = true 
     } 
    } 
} 
+0

Bunu, nil içeren bir İsteğe Bağlı Ekleme'yi kaldırırken alırsınız. Onları "!" Ile açmaya zorlandığınız 3 IBOutletiniz var. Bunlar muhtemelen IB'de uygun şekilde bağlanmamıştır. "Opsiyonel bir değeri kaldırırken beklenmedik bir şekilde sıfır bulundu", SO'daki en yaygın Swift sorusudur, bu yüzden bazı aramalar sizi doğru yolda oldukça hızlı bir şekilde ayarlayacaktır. – Michael

+0

film şeridi belge anahatlarını paylaşır, sorunu anlamak faydalı olacaktır. –

+0

Bu, benim storyboard'umun neye benzediğidir: Bir UIView'i 150x200 ekrana sürükledim, daha sonra aynı boyutlarda iki UIImageViews, hepsi yatay ve dikey olarak ortalanmış. Yani, sadece bir kare görünür. – kangarooChris

cevap

0

ve onlar zayıf olarak ilan ediyoruz çünkü öyle yok edilmek. Zayıf beyanları kaldırmayı deneyin ve muhtemelen işe yarayacaktır. Öğreticiye bakarak zayıfları yok.

İlgili konular