gpt4 book ai didi

IOS Swift - deletedObjects NSManagedObject

转载 作者:行者123 更新时间:2023-11-28 10:25:21 26 4
gpt4 key购买 nike

我想删除核心数据表(DatiGame)中的所有行,该表由 4 个字段组成。foto_bottone0foto_bottone1照片大师文托并且该表没有其他关系。

但是 DeletedObjects 操作返回以下错误:

'(NSManagedObject) -> $ T4' 与'NSSet' 不相同

import UIKit
import Foundation
import CoreData

class FirstViewController: UIViewController {

override func viewDidLoad() {
super.viewDidLoad()

// Do any additional setup after loading the view, typically from a nib.

// 1
var appDell:AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
var context:NSManagedObjectContext = appDell.managedObjectContext!
// 2
var request = NSFetchRequest(entityName: "DatiGame")
request.returnsObjectsAsFaults = false

println("pre fetch ")
// 3

var results = context.executeFetchRequest(request, error: nil)

if (results?.count > 0) {

for result: AnyObject in results! {

--> ERROR deleteObjects <--
context.deletedObjects(result as NSManagedObject) // ERROR
'(NSManagedObject) -> $ T4' is not identical to 'NSSet'"

context.save(nil)
}
}
}

override func didReceiveMemoryWarning() {
super.didReceiveMemoryWarning()
// Dispose of any resources that can be recreated.
}

}

拜托,有人可以帮助我吗?其他问题:您可以不循环删除表中的所有行吗?谢谢谢谢

最佳答案

你调用了错误的函数。删除托管对象是通过context.deleteObject(anObject)

deletedObjects 是一个(粗略地说)返回所有对象的属性已标记为删除。

补充说明:

  • 为了获得更好的性能,所有对象都被删除后保存上下文。
  • 使用 error 参数进行诊断,而不是传递 nil
  • 最好使用可选绑定(bind)来检查 executeFetchRequest() 是否成功而不是测试 results?.count

例子:

var error: NSError?
let results = context.executeFetchRequest(request, error: &error)
if let objects = results {
for object in objects as [NSManagedObject] {
context.deleteObject(object)
}
if !context.save(&error) {
println("save failed: \(error?.localizedDescription)")
}
} else {
println("fetch failed: \(error?.localizedDescription)")
}

关于IOS Swift - deletedObjects NSManagedObject,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27332867/

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