我想更快地执行我的For循环,但我不了解Fast Enumeration
。
任何人都可以建议我如何在fast enumeration
中更改此For循环。
NSString *strCorrectWord;
for(i=0;i<[self.strCorrectWord length];i++)
{
}
答案 0 :(得分:0)
- &gt; 快速枚举是针对目标c中的集合完成的,例如,如果有一个NSArray字符串,那么对于每个字符串,我们实现For循环的快速枚举: -
for(NSString *str in NSArray object)
{
statement;
}
答案 1 :(得分:0)
NSString
没有实现NSFastEnumeration
,这意味着没有真正的替代语法可以让你的循环更快(除了那些提到的here之外)。
性能瓶颈很可能是你在循环的每次迭代中执行的代码,而不是循环本身的机制,但你没有在问题中包含它。
快速枚举只是用于枚举通过集合的较慢方法的替代品。
答案 2 :(得分: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);
}];
使用块进行枚举在大多数情况下是更快的解决方案。使用这些选项可以更改它,为每个字符或每个单词提供一个子字符串。