从UserDefault传递给Swift中的字符串3
问题描述:
我在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); }
答
你可以写你的代码为:
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 –
你在哪里放线'senderDisplayName = str'?你能说明你的两个代码片段有哪些方法吗? – Sweeper
我正在使用JSQMessageViewConroller类senderDisplayName来自那里。 @Sweeper – siddle
@siddle声明一个字符串类型的全局变量(ex-:senderDisplayName:String?),然后如果let(ex-:senderDisplayName = str)赋值给这个变量,那么在里面赋值。你可能做错了什么。 –