我想更快地执行我的 For 循环,但我不知道Fast Enumeration
. 任何人都可以建议我如何在fast enumeration
.
NSString *strCorrectWord;
for(i=0;i<[self.strCorrectWord length];i++)
{
}
我想更快地执行我的 For 循环,但我不知道Fast Enumeration
. 任何人都可以建议我如何在fast enumeration
.
NSString *strCorrectWord;
for(i=0;i<[self.strCorrectWord length];i++)
{
}
NSString
不实现NSFastEnumeration
,这意味着实际上没有替代语法可以使您的循环更快(也许除了这里提到的那些)。
性能瓶颈很可能是您在循环的每次迭代中执行的代码,而不是循环本身的机制,但您没有将其包含在问题中。
快速枚举只是用来替代用于枚举集合的较慢方法。
如果要遍历给定字符串的每个字符
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);
}];
大多数情况下,使用块枚举是一种更快的解决方案。使用选项,您可以更改它,为每个字符或每个单词提供一个子字符串。
-->快速枚举是在目标 c 中的集合上完成的,例如,如果有一个 NSArray 字符串,那么对于每个字符串,我们实现 For 循环的快速枚举:-
for(NSString *str in NSArray object)
{
statement;
}