2015-02-10 164 views
0
在格式化我似乎

無法理解爲什麼下面不工作:字符串在斯威夫特

var content : NSString = "" 
let myLabel : UILabel = self.view.viewWithTag(i) as UILabel 
content += String(format:"var %@ = false;", myLabel.text) 

我得到以下錯誤:

NSString is not identical to 'UInt8'

回答

1

這是因爲NSString類不支持追加字符串使用+。它僅在您使用String時才支持。

var content : String = "" 
let myLabel : UILabel = self.view.viewWithTag(i) as UILabel 
content += String(format:"var %@ = false;", myLabel.text!) 
+0

@JeremyPope:我使用的XCode 6.1.1,它不工作現在最新的測試檢查。 – 2015-02-10 04:28:36

+0

Midhun是正確的。 – 2015-02-10 04:30:04

0

嘗試使用字符串插值:

content += "var \(myLabel.text) = false;" 
0

而不是使用格式的,爲什麼不使用雨燕的字符串插值可以通過解決這個問題?

content += "var \(myLabel.text!) = false;" 

它不給你的數字格式是在的NSString的格式非常有用,但你只是將無需任何格式的字符串。

但是使用!不檢查總是讓我抽搐,所以怎麼樣是這樣的:

if let labelText = myLabel.text { 
    content += "var \(labelText) = false;" 
}