gpt4 book ai didi

ios - 无法实例化 NSManagedObject 的子类

转载 作者:搜寻专家 更新时间:2023-10-30 22:10:51 24 4
gpt4 key购买 nike

Xcode 6 有很多错误。但我不太确定这是否是一个错误。可能不是,因为这是我刚刚学习的东西。

我的问题是,每当我尝试实例化 NSManagedObject 的子类时,我都无法选择将 entity: NSEntityDescriptionNSManagedContext: insertIntoManagedContext 参数传递给构造函数,Xcode 说“Extra Argument 'entity' in call”

我从头开始创建了一个新的 Xcode 项目,只是想看看我是否可以在一个更小、最小的项目中重现该问题。

ToDoList.Item 在数据模型检查器中设置为 Item 实体类。

代码如下:

override func viewDidLoad() {

super.viewDidLoad()

let appDel: AppDelegate = UIApplication.sharedApplication().delegate as AppDelegate
let context: NSManagedObjectContext = appDel.managedObjectContext!

let ent = NSEntityDescription.entityForName("Item", inManagedObjectContext: context)!

//compiler complains here
var item = Item(entity: ent, insertIntoManagedObjectContext: context)!

}

这是子类:

import UIKit
import CoreData

class Item: NSManagedObject {

@NSManaged var title: String
@NSManaged var completed: Bool

}

感谢所有帮助。

最佳答案

刚遇到同样的问题: Init method for core data entity not available

显然我们必须实现

init(entity: NSEntityDescription, insertIntoManagedObjectContext context, NSManagedObjectContext?)

我们自定义 NSManagedObject 类中的方法。所以只需添加

override init(entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?) {
super.init(entity: entity, insertIntoManagedObjectContext: context)
}

到您的实体类,它将起作用。

关于ios - 无法实例化 NSManagedObject 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26599574/

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