用全新的 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 应用程序中使用来自 XPC 服务的 Objective-C 协议
The Swift Programming Language 中文翻译版