我无法理解为什么在以下代码中,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值,这样我就可以有条件地返回正确类型的单元格。
答案 0 :(得分:6)
您正确访问了部分值。你只是以错误的方式打印它。
section
的类型为NSInteger
,快速为Int
只需将日志更改为NSLog("Index Path Section %d", indexPath.section)
它打印(null)
因为部分值为0
。并且当它是1
时崩溃,因为它不是有效的对象指针