gpt4 book ai didi

ios - 如何将字符串保存到 Core Data Swift

转载 作者:行者123 更新时间:2023-11-28 07:34:33 40 4
gpt4 key购买 nike

我正在创建一个带有多个 View Controller 作为“页面”的注册表单,我需要从一个 View Controller (例如“名字”和“姓氏”或“电子邮件地址”)到另一个 View Controller 的信息。我决定使用核心数据来保存字符串并从另一个 View Controller 中检索它们,而不是为每个 View Controller 创建一个全局结构(因为每次我尝试实现它时它都会崩溃)。这是我的代码:

@IBAction func nextBtnWasPressed(_ sender: Any) {

if firstNameText.text != "" && lastNameText.text != "" {
//Core Data User Information
var userInfo = UserInfo() // The Name of the Core Data Entity
var firstName: String = firstNameText.text!
userInfo.firstName = firstName

do {
try NSManagedObjectContext.save(firstName)//Need Fixing
} catch {
fatalError("Failure to save context: \(error)")
}
performSegue(withIdentifier: "toBirthdate", sender: self)
} else {
nextBtn.alpha = 0.5
}
}

这是错误日志:'由于未捕获的异常'NSInvalidArgumentException'而终止应用程序,原因:'-[UserInfo setFirstName:]:无法识别的选择器发送到实例 0x600001530e80'完整错误日志:View Here

最佳答案

好吧,一开始我会给出明显的答案,即在您的 Core Data 数据模型中,您的 UserInfo 实体没有 firstName 属性。

这仍然是可能的,但后来我查看了您发布的完整记录并看到,在这个错误之前的几百微秒是另一个错误:

Failed to call designated initializer on NSManagedObject class 'UserInfo'

我怀疑此错误表明您已使用 init() 初始化了托管对象。这是初次使用 Core Data 的用户常犯的错误。确保您正在像这样初始化您的 UserInfo 对象:

let userInfo  = UserInfo.init(entity: entityDescription, insertInto: context);

或者如果您的部署目标是 iOS 10 或更高版本,您可以使用更新的清洁方法:

let userInfo  = UserInfo.init(context: context)

关于ios - 如何将字符串保存到 Core Data Swift,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53576608/

40 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com