【问题标题】:how to save 2 attributes using 1 function to core Data (Swift4)如何使用 1 个函数将 2 个属性保存到核心数据(Swift4)
【发布时间】:2018-07-04 02:31:22
【问题描述】:

我的代码现在导致运行时错误。它只适用于 1 个属性,但有 2 个属性会崩溃。我还在下面附上了我的 coreData 文件的照片。

class firstVC : UIViewController {
@IBOutlet var enterText: UITextField!
@IBOutlet var enterNumber: UITextField!


var itemsName : [NSManagedObject] = []
var textFieldz : UITextField!
@IBAction func sam(){
    save()
}


func  save() {
    let appD = UIApplication.shared.delegate as! AppDelegate

    let context = appD.persistentContainer.viewContext
    let entity = NSEntityDescription.entity(forEntityName: "Team", in : context)!

    let theTitle = NSManagedObject(entity: entity, insertInto: context)
    theTitle.setValue(enterText.text, forKey: "lorde")
    theTitle.setValue(enterNumber.text, forKey: "num")



    do {
        try context.save()
        itemsName.append(theTitle)


        ////
    }
    catch {
        print("Tom Corley")

    }




}}

coreData 文件的图片。

【问题讨论】:

  • 什么是崩溃(错误消息和/或堆栈转储),两者的哪个属性是导致崩溃的新属性?
  • 导致崩溃的属性是第二个num。
  • 错误是什么?
  • 这是错误:'NSUnknownKeyException',原因:'[ setValue:forUndefinedKey:]:实体 Team 不符合键“num”的键值编码。'
  • 您是手动还是自动生成您的 NSManagedObject 子类,也许您的代码在添加第二个属性后与您的模型不同步?检查属性定义中“num”之后是否没有多余的空格

标签: ios core-data attributes save swift4


【解决方案1】:

我看到你已经标记了你的问题 swift4 那么为什么不直接使用实体类

let team = Team(context: context)
team.lorde = enterText.text
team.num = enterNumber.text

这样可以避免任何拼写错误,并且可以在编译时而不是运行时发现错误。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-26
    • 1970-01-01
    • 2018-09-25
    相关资源
    最近更新 更多