【问题标题】:Swift CoreData: Unrecognised Selector sent to InstanceSwift CoreData:发送到实例的无法识别的选择器
【发布时间】:2021-02-18 01:04:51
【问题描述】:

我正在将 Swift CoreData 实现到我的应用程序中,但是在将数据添加到设置的类时,我仍然会遇到错误“无法识别的选择器已发送到实例”,如下所示。我知道这可能是一个菜鸟错误,所以感谢您的耐心等待。

func coreDataRequest(){

    container = NSPersistentContainer(name: "tileData")
    
    container.loadPersistentStores { StoreDescription, error in
        if let error = error {
            print("Unresolved Error \(error)")
        }
    }
    
    var campaign = Campaign()
    campaign.countryName = "France"
}

错误

unrecognized selector sent to instance

这是我的 XCDataModel

【问题讨论】:

  • 在代码中放置断点以查找导致错误的行。

标签: swift


【解决方案1】:

您是否生成了添加到 tileData.xcdatamodeld 的 Campaign() 类?

如果是这样创建一个 NSManagedObjectContext :

var context: NSManagedObjectContext = {
    return persistentContainer.viewContext
}()

然后用它来创建这样的活动:

var campaign = Campaign(context: context)
campaign.countryName = "France"

那么如果你想存储你的对象,你必须在上下文中调用 save:

func saveContext () {
      if context.hasChanges {
          do {
              try context.save()
          } catch {
            context.rollback()
              let nserror = error as NSError
              fatalError("Unresolved error \(nserror), \(nserror.userInfo)")
          }
      }
  }

我建议您阅读一些教程,这将节省您将来的时间。有很多,google一下吧。

【讨论】:

    【解决方案2】:

    如果没有看到所有代码,很难说出哪里出了问题,就我所见,容器前面缺少一个“let”,除非它是在函数外部声明的。这是一个非常好的设置和使用 CoreData 的教程https://www.raywenderlich.com/books/core-data-by-tutorials/v7.0/chapters/3-the-core-data-stack#toc-chapter-006-anchor-011

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-04-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多