Swift-用API中的值替换标签文本
我试图创建一个按钮,当按下该按钮时,将标签文本更改为API返回的值 我制作了一个简单的php页面来查询我的数据库并返回一个“count” 在我的iAction中,我可以将标签文本设置为普通的类似字符串的测试,它工作得很好,但是如果我尝试使用插值,它似乎不起作用 出于调试目的,我添加了这一行Swift-用API中的值替换标签文本,api,swift,interpolation,Api,Swift,Interpolation,我试图创建一个按钮,当按下该按钮时,将标签文本更改为API返回的值 我制作了一个简单的php页面来查询我的数据库并返回一个“count” 在我的iAction中,我可以将标签文本设置为普通的类似字符串的测试,它工作得很好,但是如果我尝试使用插值,它似乎不起作用 出于调试目的,我添加了这一行 println( "TypeName0 = \(_stdlib_getDemangledTypeName(kik))") 其中kik是我的变量,它被分配了来自API的值,当运行它时,我得到 TypeName
println( "TypeName0 = \(_stdlib_getDemangledTypeName(kik))")
其中kik是我的变量,它被分配了来自API的值,当运行它时,我得到
TypeName0 = Swift.String
这就是我所期望的,因为我想替换labelText.text=kik
有人能解释为什么我可以轻松地用普通字符串而不是API返回的值替换labelText吗
我的完整代码如下
@IBAction func getSavingsCardCount(sender: AnyObject) {
let url = NSURL(string: "http://testurlforstackoverflow.php")
let task = NSURLSession.sharedSession().dataTaskWithURL(url!){(data, response, error) in
dispatch_async(dispatch_get_main_queue(), { () in
let kik = NSString(data: data, encoding: NSUTF8StringEncoding)! as String
println( "TypeName0 = \(_stdlib_getDemangledTypeName(kik))")
// self.scCountLabel.text = "TEST WORKS!" this will work but the following line will not
self.scCountLabel.text = "\(kik)"
println(kik)
})
}
task.resume()
}
似乎我对返回的值有问题,因为它前面有一个换行符,以及一些前导空格2个字符,所以当使用printlnewstring.lengthofBytes使用singCodingNSUTF8StringEncoding进行测试时 我当时得了8分,现在已经实施了
var newString = kik.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
我得到6,这是字符串的正确长度
对于其他有此问题的人,请注意您的控制台,并注意println语句中的任何换行或奇怪的间距问题,对于我来说,使用以下代码删除空白是有效的
var newString = kik.stringByTrimmingCharactersInSet(NSCharacterSet.whitespaceAndNewlineCharacterSet())
打印出来的是什么?我把它放回控制台。220098但这似乎很奇怪,因为控制台中的打印上面有一个超空行。因此,单击该按钮的完整控制台响应将是TypeName0=Swift.String 220098,API返回的值应该是什么?