Ios 将值从UserDefault传递到Swift 3中的字符串

Ios 将值从UserDefault传递到Swift 3中的字符串,ios,swift3,Ios,Swift3,我在let变量中得到一个值,现在我想把它传递给一个字符串变量,但当我试图传递它时,它显示了使用未解析标识符的错误。我获取值的代码是 if let str = UserDefaults.standard.string(forKey: "name") { print("Found \(str)") } else { print("No string for key") } 我要把这个传给谁 senderDisplayName = str 这是senderDisplayName -

我在let变量中得到一个值,现在我想把它传递给一个字符串变量,但当我试图传递它时,它显示了使用未解析标识符的错误。我获取值的代码是

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")
}
或者您可以使用asguard编写的其他代码:

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

您将行
senderDisplayName=str
放在哪里了?你能告诉我你的两段代码是用什么方法的吗?我使用的是JSQMessageViewConroller类,senderDisplayName就是从那里来的@Sweeper@siddle声明一个string类型的全局变量(ex-:senderDisplayName:string?),然后在if-let(ex-:senderDisplayName=str)中为该变量赋值。您可能做错了。@siddle代码
senderDisplayName=str
writent这是senderDisplayName-(void)did按sendbutton:(UIButton*)按钮和messagetext:(NSString*)text senderId:(NSString*)senderDisplayName:(NSString*)senderIdsenderDisplayName日期:(NSDate*)日期{NSAssert(否,@“错误!子类中未实现必需的方法。需要实现%s”,PRETTY_函数);}非常感谢第二个是正确的,非常感谢@杰基