web-dev-qa-db-ja.com

TableView用にNSIndexPathを作成する方法

定義した関数のテーブルの1行目を削除する必要があります。 deleteRowAtIndexPathを使用するには、セクションと行が定義されたIndexPathを使用する必要があります。このようなインデックスパスを作成するにはどうすればいいですか?

唯一のメンバーとしてint {1}を持つ配列はクラッシュします。 NSLogメッセージには、セクションも定義する必要があることが記載されています。

*編集 - >セル削除に関するコード:

    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];
239
Rubber Duck

インデックスパスをすばやく作成するには[NSIndexPath indexPathForRow:inSection:]を使用してください。

編集: Swift 3では:

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

indexPathForRowはクラスメソッドです!

コードは次のようになります。

NSIndexPath *myIP = [NSIndexPath indexPathForRow:0 inSection:0] ;
117
verec

Swiftの必須の答え:NSIndexPath(forRow:row, inSection: section)

NSIndexPath.indexPathForRow(row, inSection: section)はSwiftでは利用できないことに気付くでしょう。そして最初のメソッドを使ってindexPathを構築しなければなりません。

18
JohnVanDijk

Swift 3では、IndexPath(row: rowIndex, section: sectionIndex)です。

17
comrade