0

私はNSMutableDictionaryそれが次のようになっています:

category =     (
            {
        description =             (
                            {
                id = 1;
                name = Apple;
            },
                            {
                id = 5;
                name = Pear;
            },
                            {
                id = 12;
                name = Orange;
            }
        );
        id = 2;
        name = Fruits;
    },
            {
        description =             (
                            {
                id = 4;
                name = Milk;
            },
                            {
                id = 7;
                name = Tea;
            }
        );
        id = 5;
        name = Drinks;
    }
);

これで、ユーザーがアプリケーションでアクションを実行すると、"Apple" などのオブジェクトの @"name" 値が取得されます。そのオブジェクトを辞書から削除したいのですが、どうすればこのオブジェクトに到達できますか?

[myDictionary removeObjectForKey:]

方法?

4

2 に答える 2

1

INNER 配列から何かを削除するには:

NSString* someFood = <search argument>;
NSArray* categories = [myDictionary objectForKey:@"category"];
for (NSDictionary* category in categories) {
    NSArray* descriptions = [category objectForKey:@"description"];
    for (int i = descriptions.count-1; i >= 0; i--) {
        NSDictionary* description = [descriptions objectForIndex:i];
        if ([[description objectForKey:@"name"] isEqualToString:someFood]) {
            [descriptions removeObjectAtIndex:i];
        }
    }
}

外側の配列からグループ全体 (たとえば、"Fruits") を削除する方が簡単です。

于 2013-04-14T22:22:53.957 に答える