2015-02-10 122 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;" 
}