commitEditingStyle中的NSIndexPath

时间:2011-10-30 18:02:46

标签: ios uitableview

在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有一个'row'属性。显然,当我检查indexPath时,它就在那里。

库尔特

1 个答案:

答案 0 :(得分:2)

问题在于您的格式说明符。 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.