美文网首页
enumerateObjectsWithOptions 中的 N

enumerateObjectsWithOptions 中的 N

作者: 杨晓晨 | 来源:发表于2017-09-25 09:32 被阅读0次

    这个 options 有两个选项可以选择,一个是 concurrent 大概按照顺序遍历,为什么说大概呢,因为它会利用 CPU 的多核进行快速遍历,这样就不能保证顺序了。
    以下是 NSEnumerationConcurrent 的测试代码和结果.

    let array = NSArray(array: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])
    array.enumerateObjects(options: .concurrent) { (obj, idx, stop) in
        print("内容" + "\(obj)")
        if idx == 3 {
            stop.pointee = true
        }
    }
    

    结果

    内容3
    内容2
    内容4
    内容5
    内容6
    内容7
    内容8
    内容9
    内容10
    内容11
    内容12
    内容13
    内容14
    内容15
    内容16
    内容17
    内容18
    内容19
    内容20
    

    以下是 NSEnumerationReverse 的代码及结果

    let array = NSArray(array: [2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20])
    array.enumerateObjects(options: .reverse) { (obj, idx, stop) in
        print("内容" + "\(obj)")
        if idx == 3 {
            stop.pointee = true
        }
    }
    

    结果

    内容20
    内容19
    内容18
    内容17
    内容16
    内容15
    内容14
    内容13
    内容12
    内容11
    内容10
    内容9
    内容8
    内容7
    内容6
    内容5
    内容4
    内容3
    内容2
    

    测试机为 5S

    相关文章

      网友评论

          本文标题:enumerateObjectsWithOptions 中的 N

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