gpt4 book ai didi

ios - 如何在 swift 3 中从核心数据中删除对象

转载 作者:塔克拉玛干 更新时间:2023-11-02 09:00:37 24 4
gpt4 key购买 nike

这就是我将数据保存到核心的方式,现在我想从整个数据中删除特定对象。我该怎么做?
这是我保存数据的方式:

func saveProductDetails(product : Product) {
// set user_id
product.user_id = UserDefaults.sharedInstace.getCustomerId()
//save data locally for the time been
let entity = NSEntityDescription.entityForName("Product", inManagedObjectContext: self.writeContext)
let category = NSEntityDescription.entityForName("Category", inManagedObjectContext: self.writeContext)
let brand = NSEntityDescription.entityForName("Brand", inManagedObjectContext: self.writeContext)

var entityProduct = NSManagedObject(entity: entity!, insertIntoManagedObjectContext:self.writeContext)
var entityCategory = NSManagedObject(entity: category!, insertIntoManagedObjectContext:self.writeContext)
var entityBrand = NSManagedObject(entity: brand!,insertIntoManagedObjectContext: self.writeContext)

entityProduct = product.settingManagedObject(entityProduct)
entityProduct.setValue(String(Utill.sharedInstace.getTimeStamp()), forKey: "time_stamp")
entityProduct.setValue(Constant.Status.STATUS_NOT_VERIFIED, forKey: "status")


if product.categoryObject != nil{
product.categoryObject.user_id = UserDefaults.sharedInstace.getCustomerId();
entityCategory = product.categoryObject.settingManagedObject(entityCategory)
}

if product.brandObject != nil{
product.brandObject.user_id = UserDefaults.sharedInstace.getCustomerId();
entityBrand = product.brandObject.settingManagedObject(entityBrand)
}

entityProduct.setValue(entityCategory, forKey:"category")
entityProduct.setValue(entityBrand, forKey: "brand")

writeContext.performBlock {
do {

try self.writeContext.save()

self.managedContext.performBlock({
do{
try self.managedContext.save()
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}

})
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
return
}

}

}

Product 对象与其他两个对象有关系,我只想删除特定对象,而不是全部。这意味着在 UITableView 中删除(product.purchase_id == "selected_purchse_id")。
如何做到这一点?

最佳答案

检查此代码以进行 swift 3 核心数据操作

import CoreData

class CoreDataOperations: NSObject {

// MARK: Save data
func saveData() -> Void {
let managedObjectContext = getContext()
let personData = NSEntityDescription.insertNewObject(forEntityName: "Person", into: managedObjectContext) as! Person
personData.name = "Raj"
personData.city = "AnyXYZ"

do {
try managedObjectContext.save()
print("saved!")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
} catch {

}

}

// MARK: Fetching Data
func fetchData() -> Void {

let moc = getContext()
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")

do {
let fetchedPerson = try moc.fetch(fetchRequest) as! [Person]

print(fetchedPerson.count)
for object in fetchedPerson {
print(object.name!)
}

} catch {
fatalError("Failed to fetch employees: \(error)")
}

}



// MARK: Delete Data Records

func deleteRecords() -> Void {
let moc = getContext()
let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")

let result = try? moc.fetch(fetchRequest)
let resultData = result as! [Person]

for object in resultData {
moc.delete(object)
}

do {
try moc.save()
print("saved!")
} catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
} catch {

}





}

// MARK: Update Data
func updateRecords() -> Void {
let moc = getContext()

let fetchRequest = NSFetchRequest<NSFetchRequestResult>(entityName: "Person")

let result = try? moc.fetch(fetchRequest)

let resultData = result as! [Person]
for object in resultData {
object.name! = "\(object.name!) Joshi"
print(object.name!)
}
do{
try moc.save()
print("saved")
}catch let error as NSError {
print("Could not save \(error), \(error.userInfo)")
}


}

// MARK: Get Context

func getContext () -> NSManagedObjectContext {
let appDelegate = UIApplication.shared.delegate as! AppDelegate
return appDelegate.persistentContainer.viewContext
}
}

您可以从 https://github.com/rajkumar24u/CoreDataOperations 获得更多信息

关于ios - 如何在 swift 3 中从核心数据中删除对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40756178/

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