ios - 核心数据 : What difference between insertNewObject vs designated initializer

标签 ios objective-c swift core-data nsmanagedobjectcontext

我找到了两个解决问题的办法:

public class MyClass: NSManagedObject {
    init(_ entity:NSEntityDescription, dict: NSDictionary, context: NSManagedObjectContext) {
        super.init(entity: entity , insertInto: context)
    }
}

let entity = NSEntityDescription.entity(forEntityName: "MyClass", in: self.context!)
_ = MyClass.init(entity!, dict: item as! NSDictionary, context: self.context!)

let myClass = NSEntityDescription.insertNewObject(forEntityName: "MyClass", into: context) as! MyClass

但我最终无法理解其中的区别。它如何影响 NSManagedObjectContext

最佳答案

效果相同。 NSEntityDescription 上的方法是一个“工厂”方法,您在 Objective-C 中很少见到这种方法(该方法在 Swift 出现之前就已存在)。但最终结果与使用指定初始化程序相同。虽然工厂方法的代码不可用,但您可以假设它在某个时候调用了指定的初始化程序。

关于ios - 核心数据 : What difference between insertNewObject vs designated initializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41043450/

相关文章:

iphone - 打开 IOS 设置首选项

ios - 当 ViewController 不在屏幕上时,它如何识别

ios - 使用纹理为 Sprite 着色不起作用

swift - swift 中的 <<error type>> 是什么

ios - 为什么带有图像的按钮会导致 titleLable 文本被截断?

iphone - 具有可变高度的自定义单元格

ios - 无法导入 robovm 绑定(bind)

ios - Cocos2d 2.0 : I get a higher memory allocation peak setting default pixel format to kCCTexture2DPixelFormat_RGBA4444

ios - 如何知道在 uisearchbar 中连续打字以及在 ios 中停止打字

iPhone iOS 通过缩放计算 UIScrollView 中的位置