在实现一种将用户电子邮件和密码从登录保存到 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 在/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 相关的方法和内容(如上所示)作为注释,以查看它们是否导致了问题。但是应用程序还是崩溃了..
提前致谢!
最佳答案
错误消息说明了有关自动释放内存的内容。 您的 swift 代码中是否有任何 ...Release() 函数调用?
如果是,请将它们注释掉,然后重试。
关于ios - 在 iPhone 5s 上的 iOS 8 Swift 上使用 NSUserDefaults 后启动时出现 EXC_BREAKPOINT,而不是模拟器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24800580/