2014-08-30 108 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