我正在尝试将这段 Objective-C 代码翻译成 Swift:
- (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];
}
我的 Swift 代码是:
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?预先感谢您的回答。
最佳答案
您的 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
}
}
关于objective-c - 初始化变量并在 for 循环中更改其值后访问它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25579530/