2017-11-11 25 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 –