如何在UiTextLabel中将可选字符串设置为文本?

时间:2016-07-22 10:26:10

标签: swift optional wrapping

我有字符串名称,似乎是一个可选名称。我需要将其设置为textlabel。但这在某种程度上似乎没有工作,因为在UI中没有设置文本。 当我打印出打开的字符串时,它看起来很好。 但是当我将字符串unwrapped设置为uitextlabel.text并将其打印出来时,它似乎并不好,因为仍然出现关键字optional。 如何正确地将此字符串解包到uitextlabel.text?

var name : String?

 override func viewDidLoad() {
    super.viewDidLoad()
    print("School detail view loaded and print address")


    let rect = view.bounds

    //set header and footer
  //  schoolNameLabel.text = "set value 1"
 //   print(schoolNameLabel.text )

    if let unwrapped = self.name {
        print("print unwrapped")
        print(unwrapped)

        schoolNameLabel.text = unwrapped
        print("print label.text")
        print(schoolNameLabel.text)

    }

控制台输出:

print unwrapped
Milner college

print label.text
Optional("Milner college")

3 个答案:

答案 0 :(得分:2)

你没有必要这样做。我认为您的schoolNameLabelUILabeltext的{​​{1}}属性声明为:

UILabel

UILabel Class Reference

因此,任何非可选var text: String? 都会自动转换为String。虽然String?始终使用“可选(”&“)”包含非零值的实际内容,但print显示的是没有“可选”的实际内容。

如果“UILabel”在您想要的时候“没有显示”,则无需解开nil

直接将String?分配给self.name

schoolNameLabel.text

即使 schoolNameLabel.text = self.name self.name,它也不会使您的应用崩溃,只是“不显示任何内容”。

答案 1 :(得分:1)

if let unwrapped = self.name! {

试着把它保存在未打开的包装中,所以不要错过"!"

答案 2 :(得分:0)

print(schoolNameLabel.text!) //add this ! optional sign.. becuase that textfiled text value may be null