Jac*_*nkr 32 cocoa cocoa-touch objective-c subtraction nsarray
我有两个NSArrays:
NSArray *wants = [NSArray arrayWithObjects:
@"apples",
@"oranges",
@"pineapple",
@"mango",
@"strawberries",
nil];
NSArray *needs = [NSArray arrayWithObjects:
@"apples",
@"pineapple",
@"strawberries",
nil];
Run Code Online (Sandbox Code Playgroud)
我想要XOR他们.像wants - needs我这样的东西就是这样
[NSArray arrayWithObjects:
@"oranges",
@"mango",
nil];
Run Code Online (Sandbox Code Playgroud)
我通常会经历一些沉重的循环,但我确信有一种更实用的方法.我该怎么做呢?
Kir*_*odd 61
像这样的东西?
NSMutableArray *array = [NSMutableArray arrayWithArray:wants];
[array removeObjectsInArray:needs];
Run Code Online (Sandbox Code Playgroud)
Kirby的答案很好,但是:如果你不关心数组中元素的顺序,你应该使用集合.如果订单很重要,您可以考虑NSOrderedSet.-minusSet:对于后者,您可以使用或-minusOrderedSet:.
如何使用谓词?
NSPredicate *predicate = [NSPredicate predicateWithFormat:@"NOT (SELF IN %@)", needs];
NSArray *wants_needs = [wants filteredArrayUsingPredicate:predicate];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9145 次 |
| 最近记录: |