如何解决比较NSMutableArray元素的值
|| 我正在寻找一种比较两个NSMutableArray对象的内容的方法。这两个数组都填充有NSMutableDictionaries,它们分别分配,但偶尔包含相同的数据。 简化示例:NSMutableArray *firstArray = [[NSMutableArray alloc] init];
NSMutableArray *secondarray = [[NSMutableArray alloc] init];
NSMutableDictionary *a = [[NSDictionary alloc] init];
[a setobject:@\"foo\" forKey:\"name\"];
[a setobject:[NSNumber numberWithInt:1] forKey:\"number\"];
NSMutableDictionary *b = [[NSDictionary alloc] init];
[b setobject:@\"bar\" forKey:\"name\"];
[b setobject:[NSNumber numberWithInt:2] forKey:\"number\"];
NSMutableDictionary *c = [[NSDictionary alloc] init];
[c setobject:@\"foo\" forKey:\"name\"];
[c setobject:[NSNumber numberWithInt:1] forKey:\"number\"];
[firstArray addobject:a];
[firstArray addobject:b];
[secondarray addobject:c];
a,b和c是不同的对象,但是a和c的内容匹配。
我正在寻找的是一种比较firstArray和secondarray并仅返回b的函数/方法。
在伪代码中:
NSArray *difference = [self magicFunctionWithArray:firstArray andarray:secondarray];
NSLog(@\"%@\",difference)
=> ({name=\"bar\"; number=2})
先感谢您。
解决方法
这可以使用2个实例来实现。
NSMutableSet * firstSet = [NSMutableSet setWithArray:firstArray];
NSMutableSet * secondSet = [NSMutableSet setWithArray:firstArray];
[firstSet unionSet:[NSSet setWithArray:secondArray]];
[secondSet intersectSet:[NSSet setWithArray:secondArray]];
[firstSet minusSet:secondSet];
NSLog(@\"%@\",firstSet);
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。