2016-06-08 9 views
0

Ich habe ein Problem mit diesem Fehler:UIView Animation - unerwartet null gefunden, während auszupacken

unexpectedly found nil while unwrapping

Debugger zeigen Sie mir den Platz des Fehlers aber ich weiß nicht, was falsch ist. Fehler tritt bei der UIView-Animationsblockfunktion auf. Ich habe ein Problem mit dem Problem zu erkennen. Es gibt einen Code:

override func viewDidLoad() { 
NSNotificationCenter.defaultCenter().addObserver(self, 
                  selector: #selector(playerItemDidReachEnd), 
                  name: AVPlayerItemDidPlayToEndTimeNotification, 
                  object: self.player?.currentItem); 
} 

func playerItemDidReachEnd(notification: NSNotification) { 
    self.player?.seekToTime(kCMTimeZero) 
    self.player?.play() 

    self.freeEffectAnimationImage.layer.removeAllAnimations() 
    self.freeEffectAnimationImage.center = self.beginingPoint 
    self.freeEffectAnimationImage.stopAnimating() 
    self.freeEffectAnimationImage.startAnimating() 

    if beginingPoint.x < 15 { 
     self.beginingPoint = CGPointMake(-CGRectGetWidth(freeEffectAnimationImage.frame), beginingPoint.y) 
    } 

    if endingPoint.x > self.view.frame.size.width - 15 { 
     self.endingPoint = CGPointMake(self.view.frame.size.width + CGRectGetWidth(freeEffectAnimationImage.frame), endingPoint.y) 
    } 
    UIView.animateWithDuration(self.animationDuration/2, delay:freeEffectDelay, options:UIViewAnimationOptions.Autoreverse, animations: { 
     self.freeEffectAnimationImage.center = self.endingPoint 
     }, completion: { 
      (success:Bool) in 
      if success { 
       self.freeEffectAnimationImage.center = self.beginingPoint 
      } 
    }) 
} 

ich Hilfe froh sein :)

+0

haben Sie debuggen, um zu sehen, was die Werte? – Wain

+0

Die angegebenen Codes zeigen nicht, wie 'anfingPoint' und' endingPoint' initialisiert werden, deren Werte ein bestimmtes Kriterium erfüllen (der if-Block). Was ist der Wert unmittelbar vor dem Aufruf von 'UIView.animation' – DJohnson

+0

Ist freeEffectAnimationImage, self.beginingPoint oder self.endingPoint optional? wenn ja, versuche es selbst. freeEffectAnimationImage? .center – Nagra

Antwort

1

Eine Vermutung wäre, dass Ihre self.freeEffectAnimationImage noch erstellt werden muss, wenn die AVPlayerItemDidPlayToEndTimeNotification -Benachrichtigung empfangen wird.

Also, wenn der Animation-Block versucht, die erwartete Instanz es nil statt und stirbt findet zuzugreifen ...

Verwandte Themen