objective-c - 检查 NSArray 中对象的重复属性值

标签 objective-c cocoa-touch cocoa search nsarray

我有一个 NSArray,其中包含具有 size 属性的对象。

如何检查 NSArray 是否有两个具有相同 size 值的对象?

我可以做这样的事情:

int i = 0;
for (id item1 in myArray) {
    NSDecimalNumber *size1 = [item1 size];

    for (id item2 in myArray) {
        NSDecimalNumber *size2 = [item2 size];

        if ([size1 isEqual:size2]) {
            i ++;
        }
    }
}

if (i > [myArray count]) {
    NSLog(@"Duplicate Sizes Exist");
}

或者有更简单的方法吗?

最佳答案

试试这个代码:

NSSet *myset = [NSSet setWithArray:[myarray valueForKey:@"size"]];
int duplicatesCount = [myarray count] - [myset count];

size 这里是对象属性。

关于objective-c - 检查 NSArray 中对象的重复属性值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16460412/

相关文章:

objective-c - objective c 函数和方法的区别

删除后iOS导航栏 subview 重新出现

iphone - 更改 tabbaritem 的字体大小

cocoa - nsoutlineview 的 Nstableview 组样式

ios - 如何在不影响内存管理的情况下从 AppDelegate 访问对象?

ios - 如何在for循环中调用web服务?

iphone - 放大/缩小时 MKAnnotationView 错误更改了图钉图像

objective-c - 核心数据集属性

ios - 自动滚动到具有 UITableViewAutomaticDimension 行高的表格底部? - swift ,iOS 8+

Cocoa:以编程方式设置 NSUserNotification 类型