用全新的 Swift 应用替换 Objective-C iOS 应用,同时保留来自 NSUserDefaults 的值

Posted

技术标签:

【中文标题】用全新的 Swift 应用替换 Objective-C iOS 应用,同时保留来自 NSUserDefaults 的值【英文标题】:Replacing an Objective-C iOS app with a brand new Swift app while keeping values from NSUserDefaults 【发布时间】:2016-10-13 10:43:26 【问题描述】:

在用全新的应用程序替换旧应用程序时,我有一个一般性问题。旧应用程序已经有几年历史了,是用 Objective-C 编写的,我正在用 Swift 从头开始​​开发更新。

我想知道如何从存储在NSUserDefaults 中的名为“email_preference”的旧应用程序中保留一个变量。更新完成后如何访问变量,如何测试是否正确获取变量(我感觉第一次必须正确执行,否则值会丢失)?

这些是我在旧代码中找到的提及:

//Saves the email
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
[defaults setObject:self.email.text forKey:@"email_preference"];

//Gets the email
NSUserDefaults *defaults = [NSUserDefaults standardUserDefaults];
NSString *email = [defaults objectForKey:@"email_prefe

谢谢。

【问题讨论】:

【参考方案1】:

如果“新”应用与“旧”应用具有相同的捆绑标识符,您可以像这样获取保存的电子邮件:

let email = UserDefaults.standard.object(forKey: "email_preference")

【讨论】:

太好了,谢谢!我也有同样的期待,但我想确定以防万一:)

以上是关于用全新的 Swift 应用替换 Objective-C iOS 应用,同时保留来自 NSUserDefaults 的值的主要内容,如果未能解决你的问题,请参考以下文章