2015-01-07 2 views
1

У меня есть класс модели и два контроллера TableView. Этот класс имеет значение Integer. Этот класс по значению посылает другому классу метод prepareforsegue. Но я не могу подготовить forsegue получить индексный путь tableView. я делаю неправильно?Быстрое использование prepareForSegue в indexPath

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) { 

    let subCategory: SubCategoryVC = segue.destinationViewController as SubCategoryVC 

    let indexPath = self.categoryTableView.indexPathForSelectedRow() 

    model = arrList[indexPath?.row] **//incorrect line** 

    subCategory.getCatID = model.categoryID 
} 

ответ

2

Да. я нашел это. Эта проблема не является обязательной. :(

let indexPath = self.categoryTableView.indexPathForSelectedRow()**!** 

Я поставил восклицательный знак на конце линии и правильно

безопасный метод;..

if let indexPath = categoryTableView.indexPathForSelectedRow() { 
    // do the work here 
} 
+1

Но это сработает, если выражение вернет nil – mustafa

+0

да, вы используете более точный метод –

11

indexPath?.row возвращает дополнительное значение. Вы не можете использовать его в subacript массива. Сначала вы должны его обмануть. Вот пример:

if let indexPath = categoryTableView.indexPathForSelectedRow() { 
    // do the work here 
} 
+1

спасибо это безопасный метод –

+0

Это не функция больше ; use: categoryTableView.indexPathForSelectedRow –

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