2015-04-30 2 views
1

У меня есть UITableview, который содержит строку поиска, с моим фильтром все работает отлично. Когда я нажимаю на ячейку для передачи значений другому UIViewController и одновременно открываю UIViewController, все работает отлично. Но моя проблема в том, когда я нажимаю кнопку, чтобы поддержать, чтобы вернуться к в UITableViewController, я получаю эту ошибку:фатальная ошибка: индекс массива вне диапазона в uitableview на предыдущем контроллере swift

Array index out of range

Из этой строки кода:

cell.textLabel?.text = filtered[indexPath.row] 

Вот весь мой код:

override func tableView(tableView: UITableView, cellForRowAtIndexPath indexPath: NSIndexPath) -> UITableViewCell 
{ 

    let cell = tableView.dequeueReusableCellWithIdentifier("Cell") as UITableViewCell; 
    if(searchActive){ 
     cell.textLabel?.text = filtered[indexPath.row] 

    } else { 


     var aaa = posts1.objectAtIndex(indexPath.row).valueForKey("speedKPH") as NSString 
     let speeddouble = NSString(string: aaa).intValue 
     var aa = String(speeddouble) 

     var bb = posts1.objectAtIndex(indexPath.row).valueForKey("timestamp") as NSString 


     var now = (NSDate(timeIntervalSince1970:(bb as NSString).doubleValue)) 
     var formatter = NSDateFormatter() 
     formatter.dateFormat = "dd-MM-yyyy' 'HH:mm' '" 
     formatter.timeZone = NSTimeZone(forSecondsFromGMT: 0) 


     cell.textLabel?.text = posts.objectAtIndex(indexPath.row).valueForKey("description") as NSString + "\n"+"Velocidad : " + aa+" KM/H/Ult. Act. :" + formatter.stringFromDate(now) 
     cell.detailTextLabel?.text = posts.objectAtIndex(indexPath.row).valueForKey("deviceID") as NSString 

    } 
    SwiftSpinner.hide() 
    return cell; 

} 

} Пожалуйста, помогите!

+1

Очевидно, что ваш фильтрованный массив не имеет значения для ячейки. Попробуйте отладить количество ячеек, которые у вас есть, и количество элементов внутри вашего массива. – milo526

+0

фильтр работает отлично, только когда я закончил поиск чего-то, я перехожу к otherviewcontroller, когда я хочу вернуться к предыдущему диспетчеру просмотра, содержащему фильтр показывает: фатальная ошибка: индекс массива вне диапазона в uitableview –

+0

Вы очищаете массив в среднем времени или он очищается из-за слишком проблем с памятью. – milo526

ответ

0

Я разрешил его, я только изменил true, чтобы поиск был активным следующим образом: func searchBarTextDidEndEditing (searchBar: UISearchBar) { searchActive = true; }