2016-04-04 2 views
0

Привет, я не очень хорошо разбираюсь в Swift и получаю ошибку сигнала. Я не мог найти ничего, что могло бы вызвать его. Я действительно хочу закончить это приложение, может кто-нибудь мне помочь.сигнал SIGABRT error in viewController

ошибок видео https://www.dropbox.com/s/xlvo22fvurivize/error.mov?dl=0

Поскольку я просто использовать опцию перетаскивание для Segue Я не уверен, что это связано с кодом. Должен ли я добавить что-то в этом классе, может быть, есть что-то, что я пропустил?

Could not cast value of type 'recipeApplication.ViewController' (0x1041ff030) to 'recipeApplication.matchesPageViewController' (0x1041ff0d0). 

Это ошибка.

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 
    let matchesPage: matchesPageViewController = segue.destinationViewController as! matchesPageViewController 

    for var i = 0, a = 0 ; i < data(0).2 ; i++ { 

     if data(i).0.isSubsetOf(choosenSet) == true { 
      self.myMatchedArray.insert(self.data(i).1, atIndex: a) 
      a++ 
     } 
    } 

    for var i = 0 ; i < myMatchedArray.count ; i++ { 
     //print(myMatchedArray[i]) 
     matchesPage.dataArray.append(myMatchedArray[i]) 
    } 
} 

Это код в моем prepareforsegue, но, как и в видео, я использовал это для походов другой ViewController, так что я не использовал его для возвращения. Как я уже сказал, я только что объявил это с помощью ...

Любая идея оценивается. Спасибо

+0

Оставьте свой код (возможно, код в методе 'prepareForSegue:' на основе ошибки) – dan

+0

Также см .: https://www.raywenderlich.com/10209/my-app-crashed-now-what-part -1 для информации о том, как отлаживать сбои. – dan

+0

Ошибка, кажется, говорит о том, что вы бросаете что-то в объект 'matchPageViewController', который не является одним из них. Вместо этого это «ViewController». –

ответ

0

Как указано в комментариях, при печати segue.destination вы получили <recipeApplication.ViewController: 0x7f9f1a42b670>. Это означает, что пункт назначения для вашего segue был ViewController. Тем не менее, вы попробовали лить ViewController как matchesPageViewController. Вот почему вы получаете свою ошибку. Вы должны это проверить.

if let matchesPage = segue.destinationViewController as? matchesPageViewController { 
    //Do code 
} 

Надеюсь, это поможет.

Смежные вопросы