实施一种方法,用于保存用户登录NSUserDefaults的电子邮件和密码。我的应用程序在iPhone 5s上运行时崩溃,但不在模拟器中运行(按预期工作)。
错误信息是:
dyld:未找到符号:__TWPVSs26AutoreleasingUnsafePointerSs8_Pointer 参考自:/private/var/mobile/Containers/Bundle/Application/76A645B8-3428-452F-AEA4-60BAF6C28819/AppName.app/AppName 预计在:/private/var/mobile/Containers/Bundle/Application/76A645B8-3428-452F-AEA4-60BAF6C28819/AppName.app/Frameworks/libswift_stdlib_core.dylib in /private/var/mobile/Containers/Bundle/Application/76A645B8-3428-452F-AEA4-60BAF6C28819/AppName.app/AppName
我的NSUserDefaults代码是这样的(不要认为其余部分很重要):
let loggedIn = "yes"
let userDefaults = NSUserDefaults.standardUserDefaults()
userDefaults.setObject(email, forKey:"Email")
userDefaults.setObject(pw, forKey:"Password")
userDefaults.setObject(loggedIn, forKey: "LoggedIn")
userDefaults.synchronize()
这是在用户输入电子邮件和密码并且服务器验证了这些并返回“ok”后设置的。
在prepareForSegue中,我有这段代码:
let navigationController = segue.destinationViewController as UINavigationController
let vc = navigationController.viewControllers[0] as LoggedInViewController
// Gets email from saved data
let userDefaults = NSUserDefaults.standardUserDefaults()
let sendEmail: String = userDefaults.stringForKey("Email")
userDefaults.synchronize()
vc.email = sendEmail
更新: 我已经浏览了崩溃日志并注意到了这一点:
我真的不知道怎么读它,但我注意到异常代码0x0000000196442124位于我所包含图像的底部。
_dispatch_mach_msg_send + 1624
这是什么意思?这有帮助吗?
我还标记了NSUserDefaults(如上所示)的所有方法和内容作为注释,以查看它们是否导致了问题。但无论如何应用程序崩溃了..
提前致谢!
答案 0 :(得分:0)
错误消息说明了有关自动释放内存的信息。 你有快速代码中的任何... Release()函数调用吗?
如果有,请将其评论出来并重试。
答案 1 :(得分:0)
let sendEmail: String = userDefaults.stringForKey("Email")
对我而言,swift被这些行混淆,无法正确推断出类型 它执行.....我不是什么,但它不能从任何对象真正得到!串正确 它在尝试使用sendEmail时崩溃了
请参阅: