如何访问 NSIndexPath 部分值?

Posted

技术标签:

【中文标题】如何访问 NSIndexPath 部分值?【英文标题】:How to access NSIndexPath section value? 【发布时间】:2014-06-11 05:42:49 【问题描述】:

我不明白为什么在下面的代码中,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 程序崩溃的第二次迭代中。

我不想做任何复杂的事情,我只需要访问部分值,以便有条件地返回正确类型的单元格。

【问题讨论】:

【参考方案1】:

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

section 的类型为 NSInteger,在 swift 中为 Int

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

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

【讨论】:

谢谢 - 我自己设法弄明白了。现在我遇到了将单元格出列的问题,但第一个种子中的编译器真的没有给你太多的帮助! 或者使用 print() 和 println() 方法而不是 NSLog,例如println("索引路径部分\(indexPath.section)")

以上是关于如何访问 NSIndexPath 部分值?的主要内容,如果未能解决你的问题,请参考以下文章

在字典中添加 NSIndexPath 作为键和 NSNumber 作为值的问题?

检查 NSIndexPath 的行和节的开关

NSIndexPath 中是不是存在节

使用 NSIndexPath 访问嵌套元素

将 NSString 转换为 NSIndexPath

NSIndexPath 不将项目、部分或行识别为属性