2017-11-11 32 views
0

我在let變量中獲取值,現在我想將它傳遞給字符串變量,但是當我嘗試傳遞它時,它顯示使用未解析的標識符的錯誤。我的代碼中獲取價值是這樣的,從UserDefault傳遞給Swift中的字符串3

if let str = UserDefaults.standard.string(forKey: "name") { 
    print("Found \(str)") 
} else { 
    print("No string for key") 
} 

給誰我正經過是這樣的,

senderDisplayName = str 

這是senderDisplayName

- (void)didPressSendButton:(UIButton *)button withMessageText:(NSString *)text senderId:(NSString *)senderId senderDisplayName:(NSString *)senderDisplayName date:(NSDate *)date { NSAssert(NO, @"Error! required method not implemented in subclass. Need to implement %s", PRETTY_FUNCTION); } 
+0

你在哪裏放線'senderDisplayName = str'?你能說明你的兩個代碼片段有哪些方法嗎? – Sweeper

+0

我正在使用JSQMessageViewConroller類senderDisplayName來自那裏。 @Sweeper – siddle

+0

@siddle聲明一個字符串類型的全局變量(ex-:senderDisplayName:String?),然後如果let(ex-:senderDisplayName = str)賦值給這個變量,那麼在裏面賦值。你可能做錯了什麼。 –

回答

0

你可以寫你的代碼爲:

if let str = UserDefaults.standard.string(forKey: "name") { 
    print("Found \(str)") 
    senderDisplayName = str 
else { 
    print("No string for key") 
} 

或其他代碼y您可以同時使用作爲後衛寫:

guard let str = UserDefaults.standard.string(forKey: "name") else { 
    return 
} 
senderDisplayName = str 
+0

非常感謝第二個是正確的,非常感謝。 @Jacky – siddle

+0

這是我的榮幸。感謝您的投票。 @siddle –