2016-03-30 10 views
2

私はそのテキストプロパティを設定UILabelを持っている、とUILabelはオプション( "P")

 let firstCharacter: String = "\(user.name.characters.first)" ?? "" 
     print(firstCharacter) 
     userNameLabel.text = firstCharacter 

出力を示しています。オプション( "P")

enter image description here

答えて

3

文字列補間user.name.characters.firstは、user.name.characters.firstがnilであっても、補間された文字列が "nil"になるため、常にStringを作成します。

正解はそうのように、オプションのラップ

userNameLabel.text = "" //set the default value as "" 
//if the name contains atleast one char then set it 
if let firstCharacter = user.name.characters.first { 
    userNameLabel.text = "\(firstCharacter)" 
} 
-4

は次のように印刷。

println(firstCharacter!) 

となります。

1

です:あなたは次のコードは、使用することができ、最初の文字を取得する必要があり、それは最初の文字を取るよりも正確であるかどう

if let userName = user.name.characters.first { 
    userNameLabel.text = userName 
} 
-3

let firstCharacter = user.name.substringToIndex(user.name.startIndex.advancedBy(1)) 

文字列がnの場合は、この呼び出しの前にチェックする必要がありますot空です。