2014-08-30 110 views
2

我试图把这种Objective-C代码为斯威夫特之后访问:初始化变量,并在改变其值的for循环

- (void) performActivity{ 
NSMutableString *reversedStrings = [[NSMutableString alloc] init]; 
for (NSString *string in self.activityItems){ 
    [reversedStrings appendString:[self reverseOfString:string]]; 
    [reversedStrings appendString:@"\n"]; 
} 
UIAlertView *alertView = [[UIAlertView alloc] initWithTitle:@"Reversed" 
                message:reversedStrings 
                delegate:self 
              cancelButtonTitle:@"OK" 
              otherButtonTitles:nil]; 
[alertView show]; 

}

我的银行代码是:

override func performActivity() { 

    var reversedStrings = String() 

    for string in activityItems{ 

     reversedStrings += reverseOfString(string) 
     reversedStrings += "\n" 
    } 

    var alert = UIAlertView(title: "Reversed", 
     message: reversedStrings, 
     delegate: self, 
     cancelButtonTitle: "Cancel", 
     otherButtonTitles: "Ok") 

    alert.show() 
} 

但我的警报中的消息仍然是空字符串。如何访问for循环的结果reverseStrings?在此先感谢您的答案。

+1

我相信'reverseOfString'是您开发一个类的方法。可能错误在那里 - 你可以发布它的实现吗? – Antonio 2014-08-30 06:02:51

回答

2

很可能您的reverseOfString()的实施无法正常工作。这里是一个有效的解决方案:

var reversedStrings = String() 

for string in activityItems{ 

    reversedStrings += string.reverse() 
    reversedStrings += "\n" 
} 

它采用了String扩展实现reverse方法:

extension String { 
    func reverse() -> String { 
     var result = "" 

     for character in self { 
      result = "\(character)" + result 
     } 

     return result 
    } 
} 
+0

还有一个内置的reverse()函数可用于字符串... – 2014-08-30 08:00:35

+0

@Catfish_Man:这是真的,但它返回一个字符数组,所以你仍然必须加入它们 – Antonio 2014-08-30 08:13:37