Search code examples
iosiphoneuitableviewnsindexpath

How to create NSIndexPath for TableView


I need delete row 1 of a table in a function I have defined. In order to use deleteRowAtIndexPath you must use an IndexPath with a section and row defined. How can I create an indexpath like this?

An array with the int {1} as its only member will crash; the NSLog message states that the section needs to be defined as well.

*Edit -> Code relating to cell delete:

    NSIndexPath *myIP = [[NSIndexPath alloc] indexPathForRow:0 inSection:0];
    NSArray *myArray = [[NSArray alloc] initWithObjects:myIP, nil];
//  [self.tableView beginUpdates];
    [self.tableView deleteRowsAtIndexPaths:myArray withRowAnimation:UITableViewRowAnimationFade];
//  [self.tableView endUpdates];

Solution

  • Use [NSIndexPath indexPathForRow:inSection:] to quickly create an index path.

    Edit: In Swift 3:

    let indexPath = IndexPath(row: rowIndex, section: sectionIndex)
    

    Swift 5

    IndexPath(row: 0, section: 0)