私は大量のarray=["1","2","3","4","5","6"]
を持っています。例えば、array=["1","2","3","4","5","6","10","11"]
である。新しい要素がNSArrayに追加されているかどうかを確認する
2つの要素が大量に追加されたことを知るにはどうすればよいですか?一例では、追加された新しい要素は、10および11
私は大量のarray=["1","2","3","4","5","6"]
を持っています。例えば、array=["1","2","3","4","5","6","10","11"]
である。新しい要素がNSArrayに追加されているかどうかを確認する
2つの要素が大量に追加されたことを知るにはどうすればよいですか?一例では、追加された新しい要素は、10および11
これを試している
NSArray *array1 = @[@"1",@"2",@"3",@"4",@"5",@"6"];
NSArray *array2 = @[@"1",@"2",@"3",@"4",@"5",@"6",@"10",@"11"];
NSMutableArray *addedArray = [NSMutableArray array];
for(int i = 0; i < [array2 count]; i++)
{
if (![array1 containsObject:[array2 objectAtIndex:i]]) {
[addedArray addObject:[array2 objectAtIndex:i]];
}
}
NSLog(@"New elements is added: %@", addedArray);
出力:
New elements is added:
(
10,
11
)
'indexesOfObjectsPassingTest:'が高速です。 – Willeke
だから基本的にはあなただけの古い要素を削除して表示する必要が新しい要素。
あなたはNSMutableArray
i.e.
NSArray *oldArray = @[@"1",@"2",@"3",@"4",@"5",@"6"];
NSArray *newArray = @[@"1",@"2",@"3",@"4",@"5",@"6",@"10",@"11"];
NSMutableArray *result = [newArray mutableCopy]; // make sure you make it a mutable copy
// remove the existing elements
[result removeObjectsInArray:oldArray];
NSLog(@"remaining entry: %@",result);
@[10,11];
それはあなたが求めているものを理解するのはとても難しいの
removeOjbectsInArray
方法を使用して試すことができます。 – marmeladze