用全新的 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 的值的主要内容,如果未能解决你的问题,请参考以下文章

iOS 应用内购买:Objective-C 与 Swift [重复]

同时使用Swift和Objective-C,怎么做?

在我的 Swift 应用程序中使用来自 XPC 服务的 Objective-C 协议

The Swift Programming Language 中文翻译版

Mac Catalyst 中的弃用警告,但仅在 Objective-C 中,而不是在 Swift 中

如何在 iOS 应用程序的同一个项目中集成 Objective-C 和 Swift pod