ios - 如何比较 Objective-c 中的各种 NSArray?

标签 ios objective-c nsarray

我的代码包含四个 NSArray,每个包含两个对象,代表屏幕上任意点的 XY 坐标。两个或多个数组可能包含同一组坐标。我需要找到这四个数组中重复次数最多的坐标。 isEqualTo: 方法在这种情况下有帮助吗?

最佳答案

一种方法是维护一个 NSDictionary,使用数组中的坐标作为键,然后为每个坐标(即键)维护一个计数器,只要您看到相同的坐标就会递增。

这可能看起来像这样:

NSMutableDictionary *coordinateCount = [[NSMutableDictionary alloc] init];
for (int i = 0; i < coordinates.length; i++) { // do this loop for each of your 4 arrays
   Coordinate *c = coordinates[i];
   if ([coordinateCount containsKey:c]) {
      NSInteger count = [coordinateCount[c] integerValue];
      count++;
      coordinateCount[c] = @(count);
   }
   else {
      coordinateCount[c] = @(1);
   }
}

// now you can retrieve the max count value from all collected values

请注意,此代码未经测试,必须根据您的类型和变量名进行调整。

关于ios - 如何比较 Objective-c 中的各种 NSArray?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28936063/

相关文章:

ios - Xcode 7 在没有警告的情况下使用 jpg 文件作为启动图像

ios - 对不同的功能值使用相同的快速UIlabel

ios - URL初始化(字符串:relativeTo:) works wrong

ios - Swift - 向 UIWebView ScrollView 添加约束,以便与屏幕边缘的距离始终为 0

objective-c - 从 NSImages 的 NSArray 制作视频

objective-c - 无法从 NSMutableDictionary 中的单个元素形成数组 -[__NSCFString count] :

ios - 检测设备是否为 iPhone 5s

objective-c - 我不想重新加载 View Controller

ios - 将当前时间更改为印度标准时间

iOS 确定 NSMutableArray sortUsingComparator 何时完成