2012-06-21 29 views
0

我想扭转了一句,但我不知道我怎样才能正确地获得下一个对象在快速列举没有任何问题:/如何知道快速枚举中下一个对象是否为空?

- (NSString *) reverseWords 
{ 
    NSString *result = [[NSString alloc] init]; 
    NSArray  *tab_words = [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
    NSEnumerator *reversed = [tab_words reverseObjectEnumerator]; 
    for (NSString *word in reversed) 
    { 
     result = [result stringByAppendingString:word]; 
     // Bug here 
     if ([reversed nextObject]) 
      result = [result stringByAppendingString:@" "]; 
    } 
    return (result); 
} 

THX你

回答

1

还有就是要扭转一个更简单的方法这句话比通过它列举。你可以得到扭转数组,然后用一个空格(使用componentsJoinedByString:法)一起加入它产生另一个NSString的

- (NSString *) reverseWords 
{ 
    NSArray *tab_words = [self componentsSeparatedByCharactersInSet:[NSCharacterSet whitespaceCharacterSet]]; 
    NSArray *reversed = [[tab_words reverseObjectEnumerator] allObjects]; 
    NSString *result = [reversed componentsJoinedByString:@" "]; 
} 
+0

thx你,但如果我想知道快速枚举中的下一个对象是否为null,我该怎么做?因为,当我呼叫nextObjet时,枚举器发生了更改:s – helock

+0

调用nextObject确实更改了枚举器。一个潜在的解决方案是在枚举时调用for循环中的allObjects,因为这会给你所有剩余的对象。如果你想看看是否所有的对象已经枚举,那么你会得到一个空或无数组 –

+0

我看到,你是:) – helock

0

我建议扭转数组,然后使用NSArray的componentsJoinedByString:方法。 快速参考倒序数组,this SO question

这与您现有的代码非常相似,只需使用您现有的循环构建中间数组的简单添加步骤即可。然后添加最后的componentsJoinedByString调用来获取返回字符串。

相关问题