2014-11-18 4 views
1

Я проверил другие ответы, но они, похоже, не отвечают на мой вопрос правильно. Пожалуйста, если есть очевидный, который я не видел, поставьте его в комментарии для меня :)- [__ NSCFNumber row]: непризнанный селектор отправлен в экземпляр

У меня есть таблицаView, в которой база данных Realm используется как источник данных. Я хочу иметь возможность удалить из источника удаляемую ячейку.

Вот код:

func objectsForSection(section: UInt) -> RLMResults { 
    let categoryName = (Category.allObjects()[section] as Category).name 
    return Product.objectsWhere("productCategory.name == '\(categoryName)'") 
} 


override func tableView(tableView: UITableView, commitEditingStyle editingStyle: UITableViewCellEditingStyle, forRowAtIndexPath indexPath: NSIndexPath) { 
    if editingStyle == .Delete { 
     // Delete the row from the data source 
     var realm = RLMRealm.defaultRealm() 
     let productsForSection = objectsForSection(UInt(indexPath.section)) // This returns an RLMResults 
     let product = productsForSection[UInt(indexPath.row)] as Product 
     realm.beginWriteTransaction() 
     realm.deleteObject(product) 
     realm.commitWriteTransaction() 
     tableView.deleteRowsAtIndexPaths([indexPath.row], withRowAnimation: .Fade) 
    } else if editingStyle == .Insert { 
     // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view 
    }  
} 

Он падает, когда я делаю салфетки по горизонтали и нажмите удалить. Что я делаю не так?

Заранее благодарен!

ответ

2

У вас есть линия, которая говорит:

tableView.deleteRowsAtIndexPaths([indexPath.row], withRowAnimation: .Fade) 

, который проходит массив с номером строки, а не как NSIndexPath.

Я считаю, что вы имели в виду:

tableView.deleteRowsAtIndexPaths([indexPath], withRowAnimation: .Fade) 
+0

Спасибо за тонну !! Просто интересно, почему это не сработало, просто так я понимаю полностью? :) @Rob – Tomblasta

+0

Он ожидал массив объектов «NSIndexPath», и одна из первых вещей, которые, по-видимому, пытались сделать, это вызвать метод «row» на этом объекте. Но вы отправили ему номер, а не 'NSIndexPath', поэтому, когда он пытался вызывать' row' на этом объекте, он не удался. – Rob

+0

О, хорошо спасибо, так почему же он не появился как синтаксическая ошибка? – Tomblasta

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

  • Нет связанных вопросов^_^