Swift 3核心数据删除对象

用户名

不幸的是,新的Core Data语义使我发疯。我之前的问题有一个干净的代码,因为头文件的自动生成不正确,因此代码无法正常工作。现在,我继续删除对象的工作。我的代码似乎很简单:

func deleteProfile(withID: Int) {
    let fetchRequest: NSFetchRequest<Profile> = Profile.fetchRequest()
    fetchRequest.predicate = Predicate.init(format: "profileID==\(withID)")
    let object = try! context.fetch(fetchRequest)
    context.delete(object)
} 

我用print(object)代替进行了“硬”调试,context.delete(object)它向我展示了正确的对象。所以我只需要删除它。

PS没有deleteObject现在NSManagedContext只有public func delete(_ sender: AnyObject?)

马丁·R

在您的情况下提取的结果是托管对象数组[Event],因此您可以枚举该数组并删除所有匹配的对象。示例(在获取错误的情况下使用try?而不是try!避免崩溃):

if let result = try? context.fetch(fetchRequest) {
    for object in result {
        context.delete(object)
    }
}

如果不存在匹配的对象,则提取成功,但是结果数组为空。


注意:在您的代码中,object具有类型[Event],因此在

context.delete(object)

编译器会创建一个对

public func delete(_ sender: AnyObject?)

的方法NSObject而不是预期的

public func delete(_ object: NSManagedObject)

的方法NSManagedObjectContext这就是为什么您的代码可以编译但在运行时失败的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Swift 3删除核心数据托管对象

来自分类Dev

SWIFT的核心数据:如何从关系实体中删除对象?

来自分类Dev

Swift 3中的新核心数据

来自分类Dev

Swift 3核心数据指南

来自分类Dev

核心数据:如何在Swift中删除具有属性的所有对象?

来自分类Dev

iOS:删除所有核心数据Swift

来自分类Dev

Swift:如何检查对象的核心数据NSSet

来自分类Dev

SWIFT:更新现有的核心数据对象

来自分类Dev

Swift:如何检查对象的核心数据NSSet

来自分类Dev

Swift中的核心数据:在for循环中比较对象

来自分类Dev

使用Swift使用核心数据对象填充UIPickerView

来自分类Dev

Swift中的核心数据

来自分类Dev

Swift - 核心数据容量

来自分类Dev

Swift 2到3迁移核心数据NSManagedObject类

来自分类Dev

需要帮助来过滤Swift 3中的核心数据

来自分类Dev

Swift 3-从核心数据保存和获取图像

来自分类Dev

重新加载标签 swift 3 核心数据

来自分类Dev

Swift核心数据:核心数据中的枚举

来自分类Dev

如何在 Swift 3 中重新排序核心数据对象数组并重新排序它的 Int 属性

来自分类Dev

核心数据使用Swift保存数据

来自分类Dev

Swift +核心数据:在swift中生成其子类后无法添加托管对象

来自分类Dev

Swift的核心数据瞬态值

来自分类Dev

Swift核心数据问题(Xcode 6)

来自分类Dev

创建TableViewCells Swift的核心数据

来自分类Dev

Swift:如何过滤核心数据

来自分类Dev

使用Swift检索核心数据

来自分类Dev

Swift /核心数据/ Bool或ObjCBool

来自分类Dev

Swift的核心数据-父子关系

来自分类Dev

Swift 4核心数据-获取关系