gpt4 book ai didi

objective-c - 检查 NSArray 中的所有对象是否相同

转载 作者:塔克拉玛干 更新时间:2023-11-02 08:51:22 24 4
gpt4 key购买 nike

我已经在网上搜索过了,但是没有找到解决方案...

这是我想要的:

假设我有一个包含三个对象的 NSArray。这三个对象是:

{

@"Hi",
@"Hi",
@"Hi"

}

在这种情况下,数组包含三个字符串,它们都相等。

我想为此作证,我想创建一个NSArray类的BOOL方法,循环遍历所有的对象,返回YES如果它们都是相同的。这是一个例子:

NSArray *array = [[NSArray alloc] initWithObjects: @"Object", @"Object", @"Object", nil];

if ([array allObjectsAreIdentical /* method I would have to create */) {

NSLog(@"All objects in this array are identical");
}

我很确定没有为此内置的方法,而且我也不想采用乏味的方式手动比较每个对象。

谢谢!

最佳答案

怎么样

NSSet *set = [NSSet setWithArray:array];
if ([set count] == 0) {
// array is empty. Does that count as identical ?
} else if ([set count] == 1) {
// all objects in array are identical
} else {
// there are different objects
}

编辑:写成 NSArray 类别方法,这将是

-(BOOL) allObjectsAreIdentical
{
NSSet *set = [NSSet setWithArray:self];
return ([set count] <= 1);
}

注意:您应该知道,此解决方案(即使它可能看起来优雅)比较了数组中不必要的更多对象。因此,如果性能是一个问题,您最好使用其他解决方案,例如@dieworld 提出的那个。

关于objective-c - 检查 NSArray 中的所有对象是否相同,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12836839/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com