2016-07-22 6 views
1

옵션 이름 인 문자열 이름이 있습니다. 나는 그것을 textlabel로 설정해야합니다. 그러나 이것은 UI가 텍스트가 설정되지 않은 것처럼 어떻게 든 작동하지 않는 것처럼 보입니다. 래핑되지 않은 문자열을 인쇄 할 때 괜찮아 보입니다. 그러나 uitextlabel.text에 래핑되지 않은 문자열을 설정하고 그 중 하나를 인쇄하면 여전히 선택적 키워드가 나타나기 때문에 좋지 않은 것처럼 보입니다. uitextlabel.text에 unwrapped 된이 문자열을 어떻게 올바르게 할당 할 수 있습니까? 콘솔UiTextLabel에서 선택적 문자열을 텍스트로 설정하는 방법은 무엇입니까?

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") 
+0

콘솔에서 키워드'선택 사항 '은 당신이 객체가 선택 객체라고 말할 수 있습니다 ('nil'일 수 있음). 당신은 그것과 아무 상관이 없습니다. 이 객체의 내용을 표시 할 때마다 값이 무엇이든간에 콘솔에 다음과 같이 표시됩니다 :'Optional ("xxxx")'' –

답변

0
print(schoolNameLabel.text!) //add this ! optional sign.. becuase that textfiled text value may be null 
1
if let unwrapped = self.name! { 

시도 그렇게 놓치지 마세요 풀어 진짜로 풀어에 저장하기 "!"

2

아무 것도 할 필요가 없습니다. 귀하의 schoolNameLabelUILabel이라고 가정합니다. textUILabel의 속성으로 선언 :

var text: String? 

(UILabel Class Reference)

그래서, 비 선택적 String 자동 String?로 변환됩니다. print은 항상 0이 아닌 값에 대해 "Optional ("& ")"이라는 실제 콘텐츠를 포함하지만 UILabel은 "선택 사항"이없는 실제 내용을 보여줍니다.

그리고 "nil"이 원하는 경우 아무 것도 표시하지 않으면 String?을 풀 필요가 없습니다.

그냥 self.name 직접 schoolNameLabel.text를 할당 :

schoolNameLabel.text = self.name 

그것은 당신의 응용 프로그램을 충돌하지 않으며, 단지 self.namenil 경우에도 "아무것도 보여주지"않습니다.

관련 문제