如何访问NSIndexPath节值?

时间:2014-06-11 05:42:50

标签: ios swift 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)

关注this question我还尝试了以下操作来访问部分值:

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

我有一个包含2个部分的表,每个部分有1行。在path = 0 - 0的第一次迭代中,日志显示Index Path Section (null)。在path = 1 - 0程序崩溃的第二次迭代中。

我没有尝试做任何复杂的事情,我只需要访问section值,这样我就可以有条件地返回正确类型的单元格。

1 个答案:

答案 0 :(得分:6)

您正确访问了部分值。你只是以错误的方式打印它。

section的类型为NSInteger,快速为Int

只需将日志更改为NSLog("Index Path Section %d", indexPath.section)

它打印(null)因为部分值为0。并且当它是1时崩溃,因为它不是有效的对象指针