commitEditingStyle 中的 NSIndexPath

Posted

技术标签:

【中文标题】commitEditingStyle 中的 NSIndexPath【英文标题】:NSIndexPath in commitEditingStyle 【发布时间】:2011-10-30 18:02:45 【问题描述】:

在 commitEditingStyle tableView 方法中,“.row”属性在 NSIndexPath 上不起作用。有什么想法吗?

电话来了

- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath 
if (editingStyle == UITableViewCellEditingStyleDelete)

    NSLog(@" Delete button pushed. IndexPath:%@",indexPath);  

当在表格的第三行按下删除按钮时,日志消息是:

'按下删除按钮。 IndexPath: 2 个索引 [0, 2]'

如果我将日志消息更改为:

NSLog(@" Delete button pushed. IndexPath.row:%@",indexPath.row);

我得到一个编译错误。是什么赋予了?我认为 NSIndexPath 有一个“行”属性。显然,当我检查 indexPath 时,它就在那里。

库尔特

【问题讨论】:

【参考方案1】:

问题在于您的格式说明符。 row 属性是整数类型,所以你需要使用%d 而不是%@

.row 属性是UIKit 中定义的扩展类别的一部分。

文档位于http://developer.apple.com/library/ios/#documentation/UIKit/Reference/NSIndexPath_UIKitAdditions/Reference/Reference.html

**row**

An index number identifying a row in a section of a table view. (read-only)

@property(readonly) NSUInteger row

**Discussion**

The section the row is in is identified by the value of section.

【讨论】:

以上是关于commitEditingStyle 中的 NSIndexPath的主要内容,如果未能解决你的问题,请参考以下文章

iOS - 如何从 commitEditingStyle 获取表格行的标签

崩溃:commitEditingStyle -deleteObject 为零

在 commitEditingStyle 中删除 NSManagedObject

在 iPhone 的 Objective-C 中在 (commitEditingStyle) 之外调用 (deleteRowsAtIndexPaths)

UITableView 删除行,commitEditingStyle 方法没有触发?

UICollectionView如何删除单元格(相当于commitEditingStyle)?