2016-09-28 29 views
1

こんにちは、私は2つのnsarraysを持っています。異なる値を持つ2つのnsarrayを比較するにはどうすればよいですか?

アレイA:

arrProductSelection = [[NSArray alloc]initWithObjects:@"English",@"German",@"Russian",@"Chinese",@"Spanish",@"French",@"French",@"French",@"French",@"French",@"French",@"French",@"French",nil]; 

アレイB:

arrProductSelectionB = [[NSArray alloc]initWithObjects:@"deselcted",@"selected",@"selected",@"selected",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",nil]; 

Iは、2つの配列を比較し、選択された値を有する配列Bと比較して、配列Aから値を取得する必要があります。つまり、私はドイツ語、中国語、ロシア語をnsstringとしてカンマで区切らなければなりません。

NSMutableArray *arrSelected = [[NSMutableArray alloc] init]; 

NSArray *arrProductSelection = [[NSArray alloc]initWithObjects:@"English",@"German",@"Russian",@"Chinese",@"Spanish",@"French",@"French",@"French",@"French",@"French",@"French",@"French",@"French",nil]; 

NSArray *arrProductSelectionB = [[NSArray alloc]initWithObjects:@"deselcted",@"selected",@"selected",@"selected",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",@"deselcted",nil]; 

for(int i = 0; i< arrProductSelectionB.count-1;i ++) { 
    if ([arrProductSelectionB[i] isEqualToString:@"selected"]) { 
     [arrSelected addObject:arrProductSelection[i]]; 
    } 
} 

NSString *strSelected = [arrSelected componentsJoinedByString:@","]; 

NSLog(@"%@", strSelected);//output: German,Russian,Chinese 
+0

は両方とも同じですか? –

+0

この目的で辞書を使うべきです。 – Janmenjaya

+0

はい彼らは同じです –

答えて

3

はこれを試してみてください。

(
     { 
     flag = deselcted; 
     name = English; 
    }, 
     { 
     flag = selected; 
     name = German; 
    }, 
     { 
     flag = deselcted; 
     name = Russian; 
    }, 
     { 
     flag = deselcted; 
     name = Chinese; 
    } 
) 

==>配列[(辞書)、(辞書)、.....]

+0

すぐに緑のダニ –

0

最初私はあなたがこのタイプのアレイは、その後イースリー管理することができた場合は、両方の配列が

if (arrProductSelection.count == arrProductSelectionB) { 

//than all you need is one for cycle something like : 

    for (int i = 0; i < arrProductionSelectionB.count; i++) { 
     if ([arrProductionSelectionB[i] isEqualToString: @"selected"]) { 
     do something magically with arrProductSelection[i]; 
    } 
    } 
} 
0

のような安全なものに同じカウンタを持っていることを確認します:

0

あなたは配列になる必要がある場合は、ここで関数は次のとおりです。

NSMutableArray*resultArray=[[NSMutableArray alloc]init]; 

    for(int i=0; i<arrProductSelectionB.count;i++){ 
     if ([[arrProductSelectionB objectAtIndex:i]isEqualToString:@"selected"]) { 
      [resultArray addObject:[arrProductSelection objectAtIndex:i]]; 
     } 
    } 

resultArrayには必要な値があります。

関連する問題