配列のコレクションである配列があります。言う ( ( 1, x, y, a), ( 2, m, n, o), ( 3, s, t, u, v, w) )
m のインデックスを取得したい場合、どうすれば取得できますか?
NSMutableArray contains:(id)を使用して実行できます か?
配列のコレクションである配列があります。言う ( ( 1, x, y, a), ( 2, m, n, o), ( 3, s, t, u, v, w) )
m のインデックスを取得したい場合、どうすれば取得できますか?
NSMutableArray contains:(id)を使用して実行できます か?
このコードで確認してください:
int arrayPos = 0;
for (NSArray *tempArray in collectionArray)
{
if(tempArray containsObject:@"m")
{
int indexOfWord = [tempArray indexOfObject:@"m"];
NSlog(@"Array pos: %d Index is : %d",pos, indexOfWord);
}
pos++;
}
for ループでは、コレクション配列に追加された各配列を取得します。その後、配列内の単語の存在を確認しています。存在する場合は、それを表示しています。また、配列の位置も印刷します。
この要素は次の場所にあります。
NSString *str = [[collectionArrayObjectAtIndex:pos] objectAtIndex:indexOfWord];
あなたが話している関数 " [NSMutableArray contains:]
" は、オブジェクト "B" が {A, B, C} の配列に存在するかどうかを教えてくれます。
本当に必要なのは、親配列を介して高速な列挙をcontains
行い、サブ配列で " " 処理を行う 2 番目の関数を作成することです。「m」が見つかった場合は、「YES」と親配列内のそのエントリのインデックスを返します。
NSArray *arrWithArr;
NSArray *arrWithM;
NSInteger arrIndex;
for (int i = 0; i< [arrWithArr count]; i++) {
if ([[arrWithArr objectAtIndex:i] containsObject:@"m"]) {
arrIndex = i; break;
}
}
NSInteger mIndex = [[arrWithArr objectAtIndex:arrIndex]indexOfObject:@"m"];