微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

比较NSMutableArray元素的值

如何解决比较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 举报,一经查实,本站将立刻删除。