【问题标题】:Pass value from UserDefault to a string in Swift 3将值从 UserDefault 传递给 Swift 3 中的字符串
【发布时间】:2017-11-11 09:16:46
【问题描述】:

我在 let 变量中得到一个值,现在我想将它传递给一个字符串变量,但是当我尝试传递它时它显示错误,即 Use of unresolved identifier 。我获取价值的代码是这样的,

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); }

【问题讨论】:

  • 你把senderDisplayName = str这行放在哪里了?你能显示你的两个代码sn-ps是什么方法吗?
  • 我正在使用 JSQMessageViewConroller 类, senderDisplayName 来自那里。 @Sweeper
  • @siddle 声明一个字符串类型的全局变量(ex-: senderDisplayName :String?),然后在 if let(ex-: senderDisplayName = str) 中为这个变量赋值。你可能做错了什么。
  • @siddle 代码senderDisplayName = str写在哪里
  • 这是 senderDisplayName - (void)didPressSendButton:(UIButton *)button withMessageText:(NSString *)text senderId:(NSString *)senderId senderDisplayName:(NSString *)senderDisplayName date:(NSDate *) date { NSAssert(NO, @"错误!所需方法未在子类中实现。需要实现 %s", PRETTY_FUNCTION); }

标签: ios swift3


【解决方案1】:

您可以将代码编写为:

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

或您可以使用 as guard 编写的其他代码:

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

【讨论】:

  • 非常感谢第二个是正确的,非常感谢。 @Jacky
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-05-24
  • 1970-01-01
  • 2019-09-28
  • 2014-08-02
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多