iOS模拟器问题?

时间:2014-01-14 00:01:52

标签: ios objective-c ios-simulator

我正在尝试教程:从RoadMapiOS添加数据https://developer.apple.com/library/ios/referencelibrary/GettingStarted/RoadMapiOS/index.html

事件似乎没有及时解雇。第一个事件仅在三次点击后调用。然后每个事件都是一次点击。有时它似乎落后了两个。

- (void)tableView:(UITableView *)tableView didDeselectRowAtIndexPath:(NSIndexPath *)indexPath{

    [tableView deselectRowAtIndexPath:indexPath animated:NO];
    NSLog(@"%d", (indexPath.row));
    XYZToDoItem *tappedItem = [self.toDoItems objectAtIndex:indexPath.row];
    tappedItem.completed = !tappedItem.completed;
    [tableView reloadRowsAtIndexPaths:@[indexPath]
                     withRowAnimation:UITableViewRowAnimationNone];
}

当我使用调试器逐步完成此操作时。

Click on        Console output
-------------------------------
Row 5           -
Row 3           4
Row 1           2
Row 3           0

索引基于0,但似乎与之前的事件匹配。这只是模拟器的一个问题,还是可能配置错误?

1 个答案:

答案 0 :(得分:1)

查看链接我认为你的功能错误了。你有* de * selectRowAtIndexPath而不是* did * SelectRowAtIndexPath。这就是它被称为“迟到”的原因,因为当你选择了预期时它没有被调用,但是当你选择下一行时,这会激活先前选择的行。

尝试:

- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath