0

我想更快地执行我的 For 循环,但我不知道Fast Enumeration. 任何人都可以建议我如何在fast enumeration.

NSString *strCorrectWord;
    for(i=0;i<[self.strCorrectWord length];i++)
    {


    }
4

3 回答 3

0

NSString不实现NSFastEnumeration,这意味着实际上没有替代语法可以使您的循环更快(也许除了这里提到的那些)。

性能瓶颈很可能是您在循环的每次迭代中执行的代码,而不是循环本身的机制,但您没有将其包含在问题中。

快速枚举只是用来替代用于枚举集合的较慢方法。

于 2013-07-04T12:45:48.260 回答
0

如果要遍历给定字符串的每个字符

NSString *strCorrectWord = @"Test";

NSRange range = NSMakeRange(0, strCorrectWord.length);

[strCorrectWord enumerateSubstringsInRange:range options:NSStringEnumerationByComposedCharacterSequences usingBlock:^(NSString *substring, NSRange substringRange, NSRange enclosingRange, BOOL *stop) {

    //Substring is each char
    NSLog(@"%@", substring);
}];

大多数情况下,使用块枚举是一种更快的解决方案。使用选项,您可以更改它,为每个字符或每个单词提供一个子字符串。

于 2013-07-04T15:55:38.880 回答
0

-->快速枚举是在目标 c 中的集合上完成的,例如,如果有一个 NSArray 字符串,那么对于每个字符串,我们实现 For 循环的快速枚举:-

for(NSString *str in NSArray object)
{
    statement;
}
于 2013-07-04T12:41:12.200 回答