无法理解为什么下面不工作:字符串在斯威夫特
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'
无法理解为什么下面不工作:字符串在斯威夫特
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'
这是因为NSString
类不支持追加字符串使用+
。它仅在您使用String
时才支持。
var content : String = ""
let myLabel : UILabel = self.view.viewWithTag(i) as UILabel
content += String(format:"var %@ = false;", myLabel.text!)
尝试使用字符串插值:
content += "var \(myLabel.text) = false;"
而不是使用格式的,为什么不使用雨燕的字符串插值可以通过解决这个问题?
content += "var \(myLabel.text!) = false;"
它不给你的数字格式是在的NSString的格式非常有用,但你只是将无需任何格式的字符串。
但是使用!不检查总是让我抽搐,所以怎么样是这样的:
if let labelText = myLabel.text {
content += "var \(labelText) = false;"
}
@JeremyPope:我使用的XCode 6.1.1,它不工作现在最新的测试检查。 – 2015-02-10 04:28:36
Midhun是正确的。 – 2015-02-10 04:30:04