-3

以下の例ではNSArrayNSDictionaries2 つの値を抽出するか、辞書から不要な値を削除する必要があります。id と NumberValue を削除する必要があります。どうすればそれができるか知っていますか?

Array: (
        {
            customerUS= {
                DisplayName = "level";
                InternalName = "Number 2";
                NumberValue = 1;
                id = xwrf
            },
            customerCAN= {
                DisplayName = "PurchaseAmount";
                InternalName = "Number 1";
                NumberValue = 3500;
                id = adf;
            };
        }
      )

よろしくお願いします。

4

4 に答える 4

2

まず、(mutable)に変換 する 必要がある(immutable)の値を削除/挿入/更新することはできません。 NSDictionary/NSArrayNSDictionary/NSArray NSMutableDictionary/NSMutableArray

そのような

NSArray *myArr = ....;    
NSMutableArray *newMutableArr = [myArr mutableCopy];

その後、newMutableArrで変更できます。

そのような

for(int i = 0 ; i < newMutableArr.count ; i ++)
{
   [[newMutableArr objectAtIndex:i] removeObjectForKey:@"id"];
   [[newMutableArr objectAtIndex:i] removeObjectForKey:@"NumberValue"];
}

編集:

for loopとを使用せずにremoveObjectForKey、辞書の配列があり、両方が変更可能な場合、次のように配列のすべての要素からキーとそのオブジェクトを削除することもできます。

[newMutableArr makeObjectsPerformSelector:@selector(removeObjectForKey:) withObject:@"id"];
[newMutableArr makeObjectsPerformSelector:@selector(removeObjectForKey:) withObject:@"NumberValue"];
于 2013-09-05T04:41:29.573 に答える
1

Apple のドキュメントを読むことをお勧めします。

作成後に Collection オブジェクトを変更するには、変更可能なバージョンが必要です。NSDictionaryがあるからNSMutableDictionaryです。ここを読んでください。

オブジェクトを削除する方法があります。

- (void)removeObjectForKey:(id)aKey

他の方法もあります。上記のドキュメントで簡単に参照できます。

于 2013-09-05T04:38:43.660 に答える
0

NSMutabledictionary からレコードを削除するための removeObjectForKey を見つけます。

removeObjectForKey 好きなキー値を渡します

これはすべてキーの DisplayName、InternalName、NumberValue、id です

このようにする

removeObjectForKey:@"id";
于 2013-09-05T04:44:40.097 に答える
0

まず、配列を変更可能な配列に変換する必要があります。次に、辞書からキーと値のペアを削除できます。

NSMutableArray *mutableArray = [yourArray mutableCopy]; 
for(int i=0;i<mutableArray.count;i++){
  NSMutableDictionary *outerDictionary = [mutableArray objectAtIndex:i];
  for(NSString *key in outerDictionary.allKeys){
    NSMutableDictionary *innerDictionary = [outerDictionary objectForKey:key];
    [innerDictionary removeObjectForKey:@"id"];
    [innerDictionary removeObjectForKey:@"NumberValue"];
  } }
于 2013-09-05T05:32:50.750 に答える