如何使用contentsOfURL初始化字符串并更新Swift中的UILabel文本

时间:2015-02-10 13:01:13

标签: ios iphone swift xcode6 uilabel

我正在尝试从网页上读取数据而我正在使用NSString初始化程序 - init(contentsOfURL,因为该页面上只有一个句子需要在标签中显示。

if var optUrl = NSURL(string: "www.example.com/examplepage.php"){
        if let optStr = NSString(contentsOfURL: optUrl, encoding: NSUTF8StringEncoding, error: nil){
            println(optStr)
            songLabel.text = optStr
        }

    }

当我在Xcode中的模拟器中运行代码时,println会打印句子,但它不会显示在标签中......如果我将代码更改为songLabel.text = "Now playing: \(optStr)",我会看到{ {1}}但不是println显示的optStr的值。

我做错了吗?

1 个答案:

答案 0 :(得分:0)

结论

事实证明一切正常,字符串前面有换行符,因为标签行数为0,文本不可见。断点总是你的朋友。


不相关

您似乎需要添加http://

这对我来说是一个操场上的php文件

if var optUrl = NSURL(string: "http://php.net/manual/en/function.file.php") {
    println(optUrl)
    var error: NSError? = nil
    if let optStr = NSString(contentsOfURL: optUrl, encoding: NSUTF8StringEncoding, error: &error) {
        println(optStr)
    }
    print(error)
}

修改

也有可能你的字符串是空的,因为你说设置“正在播放:(optStr)”会导致“正在播放:”

在游乐场验证您的内容,但您至少应该能够检查

countElements(optStr) > 0