gpt4 book ai didi

ios - 检查 NSArray 是否包含具有特定属性的对象

转载 作者:可可西里 更新时间:2023-11-01 06:18:15 26 4
gpt4 key购买 nike

我有一个 UIView 数组。我想检查该数组是否包含带有特定标签的 UIView。如果确实如此,那么我应该获得该 View ,否则我应该收到 nil。

截至目前我使用以下

// validCells is an array UIView

NSPredicate *p = [NSPredicate predicateWithBlock:^BOOL(id obj, NSDictionary *ignored){
return ((UIView *)obj).tag == i;
}];

UIView *cell = [[validCells filteredArrayUsingPredicate:p] lastObject];

这工作正常,但复杂度为 n^2。我想知道是否还有其他更好的方法来做到这一点。

谢谢。

最佳答案

我不认为你的方法的复杂度是 O(n^2),它更像是 O(n)。但是如果你只是搜索一个特定的,没有理由创建一个临时数组元素。正如@Josh 所说,您可以进行简单的枚举。

如果想花哨一点,可以这样写

NSUInteger index = [validCells indexOfObjectPassingTest:^BOOL(UIView *view, NSUInteger idx, BOOL *stop) {
return view.tag == idx;
}];
if (index != NSNotFound) {
cell = validCells[index];
}

关于ios - 检查 NSArray 是否包含具有特定属性的对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20226966/

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