IOS UserDefault 无法存储在本地

标签 ios swift nsuserdefaults

我是编程新手,现在正在开发一个需要登录系统的应用程序。 (一个不太安全的系统)。我写了以下代码

@IBAction func CreateACPressed(_ sender: Any) {
    if usernameTextField2.hasText && passswordTExtField2.hasText {

  let  newUser = accountInfo(username: usernameTextField2.text!, password: passswordTExtField2.text!)


    var randomTestingArr : NSArray = [accountInfo]() as NSArray

    randomTestingArr.adding(newUser)

   let defaults = UserDefaults.standard
   defaults.set(randomTestingArr, forKey: "ACArr")
   defaults.synchronize()

   let array = defaults.array(forKey: "ACArr")  as? [accountInfo] ?? [accountInfo]()

    for i in array{
        print("username: \(i.username) password: \(i.password)")
    }



    // temp retrieve
    }else {
        print("you havent entered anything")
    }

}

但是当我点击应用程序上的创建按钮时,控制台没有打印出我输入的用户名和密码。

这里有什么问题吗?

最佳答案

您尝试储蓄的方式可能会产生问题。

而不是这个

 let defaults = UserDefaults.standard
 defaults.set(randomTestingArr, forKey: "ACArr")
 defaults.synchronize()

替换为:

let defaults = UserDefaults.standard
defaults.set(usernameTextField2.text!, forKey: "UserName")
defaults.set(passswordTExtField2.text!, forKey: "Password")
defaults.synchronize()

我确信它会正常工作。

关于IOS UserDefault 无法存储在本地,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647564/

相关文章:

iOS:自定义对象的 int 变量在 NSUserDefaults 中返回 nil

ios - NSUserDefaults 用于功能数据

c# 推送通知不适用于土耳其语字符

ios - 具有不同类的 UIViewcontroller 的直接按钮

ios - 获取本地存储数据时出现问题 - Swift

ios - Swift 2.2 #selector 协议(protocol)扩展编译器错误

cocoa - 在终端中更改用户默认值时获取通知

iphone - 如何修复 "unrecognized selector sent to instance"

ios - 使用 Swift AVPlayer 显示视频轨道的时间码

Swift函数在另一个函数完成后执行