截至目前我使用以下
// 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是否包含具有特定属性的对象所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)