Как получить доступ к значению раздела NSIndexPath?

Я не могу понять, почему в следующем коде indexPath.section перенастраивает нулевое значение.

override func tableView(tableView: UITableView!, cellForRowAtIndexPath indexPath: NSIndexPath!) -> UITableViewCell? {
    NSLog("Index Path %@", indexPath)
    // Index Path <NSIndexPath: 0x1666d1d0> {length = 2, path = 0 - 0}

    NSLog("Index Path Section %@", indexPath.section)
    // Index Path Section (null)

После этого вопроса я также попробовал следующее, чтобы получить доступ к значению раздела:

if let section = indexPath?.section {
    NSLog("Index Path Section %@", section)
}

У меня есть таблица с 2 разделами по 1 строке в каждом разделе. На первой итерации, где path = 0 - 0, журнал показывает Index Path Section (null). На второй итерации, где path = 1 - 0, происходит сбой программы.

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


person PassKit    schedule 11.06.2014    source источник


Ответы (1)


Вы правильно обращаетесь к значению раздела. Вы просто печатаете это неправильно.

section имеют тип NSInteger, который Int в Swift

просто измените журнал на NSLog("Index Path Section %d", indexPath.section)

Он печатает (null), потому что значение раздела равно 0. и разбился, когда это 1, потому что это недопустимый указатель объекта

person Bryan Chen    schedule 11.06.2014
comment
Спасибо - сам разобрался. Теперь у меня есть проблема с удалением ячеек из очереди, но компилятор в этом первом семени действительно не дает вам многого для продолжения! - person PassKit; 11.06.2014
comment
В качестве альтернативы используйте методы print() и println(), а не NSLog, например. println(Индексный раздел пути \(indexPath.section)) - person sketchyTech; 11.06.2014