程序问答   发布时间:2022-05-31  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。

如何解决SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性?

开发过程中遇到SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性的问题如何解决?下面主要结合日常开发的经验,给出你关于SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性的解决方法建议,希望对你解决SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性有所启发或帮助;

我正在尝试在我的视图模型中实现一个重置方法,该方法将在按钮操作的视图中调用,因此视图将得到更新和持久化

这里是在我的视图模型中发布的实体的属性

var vIEwContext: NsmanagedobjectContext { PersistenceController.shared.container.vIEwContext }

@Published var price: Double
@Published var qty: Int
@Published var sub@R_354_10586@l: Double

这是我尝试过的 resetAllCounters 方法我知道这是错误的方法我只想将数量重置为 0 并更新所有计数器

    func resetAllSub@R_354_10586@ls(){
    let allCounters: NSFetchrequest<WindowCounter> = WindowCounter.fetchrequest()

    do {
        let saveDWindowCounters = try self.vIEwContext.fetch(allCounters)
        
        for counter in saveDWindowCounters {
            counter.qty = 0
        }
        
        try self.vIEwContext.save()
    } catch {
        print(error.localizedDescription)
    }
}

解决方法

使用NSBatchupdaterequest

func resetAllSub@R_354_10586@ls(){
    let request = NSBatchupdaterequest(entityName: "WindowCounter")
    request.propertiesToupdate = ["qty":0]
    request.resultType = .updatedObjectsCountResultType
    
    do {
        let result = try context.execute(request) as! NSBatchupdateResult
        //This print the number of rows affected/updated
        print(result.result!)
    }catch {
        //Handel Catch here
    }
}

,

我的解决方案是我决定不在视图模型中观察对象,而是只观察实体本身,因为它符合 ObservabLeobject 然后创建一个子类来处理该方法

 extension NsmanagedObjectContext {
  
  func resetAllSub@R_354_10586@ls(){
   let allCounters: NSFetchrequest<WindowCounter> = 
   WindowCounter.fetchrequest()

   do {
       let savedWindowCounters = try self.fetch(allCounters)

       for counter in savedWindowCounters {
           counter.qty = 0
           counter.sub@R_354_10586@l = 0
       }
       try self.save()
   } catch {
       print(error.localizedDescription)
   }

} }

大佬总结

以上是大佬教程为你收集整理的SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性全部内容,希望文章能够帮你解决SwfitUI 2.0 Xcode 12 如何更新核心数据实体的单个属性所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签:122.0