【问题标题】:Objective-C: block enumeration for array in REVERSE order? [duplicate]Objective-C:以反向顺序阻止数组枚举? [复制]
【发布时间】:2012-10-29 09:22:48
【问题描述】:

有 NSArray 的enumerateWithBlock 方法,但是我需要以相反的顺序枚举,是否有这样做的块,或者我必须使用for 循环代替,甚至不是快速循环,但是传统的for (int i = array.count - 1 ; i >= 0 ; i--) 一个?

谢谢!

【问题讨论】:

    标签: objective-c ios nsarray objective-c-blocks


    【解决方案1】:

    您可以使用 enumerateObjectsWithOptions:usingBlock: 传递 NSEnumerationReverse 作为选项参数。

    【讨论】:

    • 是否有任何选项可以将循环限制为最大数量?假设我有 100 个元素,我只想遍历最后 N 个元素?
    • @hzxu,没有选项可以这样做,但是在块中,您有 idx 属性和 BOOL *stop,因此您可以在达到某个索引值后将 *stop 设置为 YES。
    【解决方案2】:

    您可以使用reverseObjectEnumerator

    for (id someObject in [myArray reverseObjectEnumerator])
    {
        // print some info
        NSLog([someObject description]);
    }
    

    希望这会有所帮助!

    【讨论】:

    • 谢谢,它仍在使用 for 循环而不阻塞,但也许这是唯一的其他解决方案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-01-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-10-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多