2017-02-02 4 views
0

私は大量のarray=["1","2","3","4","5","6"]を持っています。例えば、array=["1","2","3","4","5","6","10","11"]である。新しい要素がNSArrayに追加されているかどうかを確認する

2つの要素が大量に追加されたことを知るにはどうすればよいですか?一例では、追加された新しい要素は、10および11

+2

それはあなたが求めているものを理解するのはとても難しいのremoveOjbectsInArray方法を使用して試すことができます。 – marmeladze

答えて

0

これを試している

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 
) 
+0

'indexesOfObjectsPassingTest:'が高速です。 – Willeke

2

だから基本的にはあなただけの古い要素を削除して表示する必要が新しい要素。

あなたは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]; 
関連する問題