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

ios – 检查NSArray是否包含具有特定属性的对象,第1张

概述我有一个UIView阵列.我想检查该数组是否包含具有特定标记的UIView.如果它确实那么我应该得到那个观点,否则我应该收到零. 截至目前我使用以下 // validCells is an array UIViewNSPredicate *p = [NSPredicate predicateWithBlock:^BOOL(id obj, NSDictionary *ignored){ 我有一个UIVIEw阵列.我想检查该数组是否包含具有特定标记的UIVIEw.如果它确实那么我应该得到那个观点,否则我应该收到零.

截至目前我使用以下

// valIDCells is an array UIVIEwnspredicate *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是否包含具有特定属性对象全部内容,希望文章能够帮你解决ios – 检查NSArray是否包含具有特定属性的对象所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/web/1005606.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-22
下一篇 2022-05-22

发表评论

登录后才能评论

评论列表(0条)

保存