美文网首页
将 NSArray 过滤为一个新的 NSArray

将 NSArray 过滤为一个新的 NSArray

作者: 张嘉夫 | 来源:发表于2017-03-09 15:36 被阅读380次

    有很多种方式都可以实现,但目前最简洁的方式一定是使用 [NSPredicate predicateWithBlock:]

    NSArray *filteredArray = [array filteredArrayUsingPredicate:[NSPredicate predicateWithBlock:^BOOL(id object, NSDictionary *bindings) {
        return [object shouldIKeepYou];  // 要保留就返回 YES。
    }]];
    

    相当简明扼要。


    Swift

    对于在 Swift 中使用 NSArray 的人,你会喜欢这个还要更加简洁的版本:

    nsArray = nsArray.filter { $0.shouldIKeepYou() }
    

    filter 只是 Array 的一个方法(NSArray 被隐式桥接到 Swift 的 Array)。只要一个参数:带有数组中某个对象的闭包,返回 Bool 型。在闭包中想保留就返回 true

    相关文章

      网友评论

          本文标题:将 NSArray 过滤为一个新的 NSArray

          本文链接:https://www.haomeiwen.com/subject/bkowgttx.html