0

クイックワン。何か見落としてる…

NSDictionary の配列から構築されたグループ化されたテーブル ビューがあります。各配列はテーブルのセクションです。編集モードでユーザーが「削除」をクリックすると、私は呼び出します

- (void)removeObject:(MyClass *)myObject 

メッセージ [myArray removeObject:myObject] を送信する配列を特定するにはどうすればよいですか? NSDictionary には indexOfObject: メソッドがありませんが、NSArray にはあります。上記のオブジェクトを探して各配列を反復処理できると思いますが、それは正しくないようです。

誰か私の頭をガタガタさせてくれませんか?!? どうも!

4

3 に答える 3

0

配列を反復処理しても明らかに問題はありません。人々が物事を削除する頻度はどれくらいですか、そして辞書はこれをかなりのオーバーヘッドにするのに本当に十分な大きさですか?

参照ポイントとして、NSArrayのindexOfObject:メソッドは、配列が一致するオブジェクトを探して反復処理するよりも優れた機能を実行しません。

于 2009-06-21T00:30:07.917 に答える
0

標準の UITableView プロトコルを実装して、次のメソッドを使用できます。

(void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle<br> forRowAtIndexPath:(NSIndexPath *)indexPath {
     <br><br>//check the section according to your array, if(indexPath.section ==....
     <br><br>
    if(editingStyle == UITableViewCellEditingStyleDelete) {
     <br>
    [arrayFoundBefore removeObjectAtIndex:indexPath.row];
    <br> 
    }
    <br>}

私はそれがそれを行う方法だと思いますが、確かではありません。誰でも明確にできますか?

于 2009-06-21T06:13:28.300 に答える
0

どの tableView がメッセージを送信したかを知る必要があります (問題のメソッドがそのオブジェクトのデリゲートにあるため)。したがって、tableView デリゲートの viewDidLoad メソッドで配列を作成するか、どちらに基づいているかを判断できます。デリゲート コンテキスト。

于 2009-06-20T23:52:04.627 に答える