gpt4 book ai didi

ios - swift 核心数据 : error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject'

转载 作者:搜寻专家 更新时间:2023-10-30 23:00:35 29 4
gpt4 key购买 nike

我正在使用核心数据在 vc1 中保存一个类别,并想将列表属性添加到 vc2 中的列表中。我的数据模型是许多列表属性的一个类别。

我在 vc1 中添加这样的类别:

func createNewCategory() {
var category: NSManagedObject! = NSEntityDescription.insertNewObjectForEntityForName("Category", inManagedObjectContext: self.context) as NSManagedObject
category.setValue(self.categoryTextField.text, forKey: "name")

var error: NSError? = nil
self.context.save(&error)
}

在vc2中设置数据:

func setupCoreData() {
var appDelegate: AppDelegate = (UIApplication.sharedApplication()).delegate as AppDelegate
self.context = appDelegate.managedObjectContext!

var request: NSFetchRequest = NSFetchRequest(entityName: "Category")
if (self.context.executeFetchRequest(request, error: nil)) {
var error: NSError? = nil
self.listData = self.context.executeFetchRequest(request, error: &error)
self.managedObject = self.listData.objectAtIndex(0) as NSManagedObject
}
}

它在最后一行崩溃:self.managedObject = ... 说:

CoreData: error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject' 

如果我放置一个断点并打印数组,托管对象就在数组中。怎么了?

最佳答案

专用初始化器是

class func insertNewObjectForEntityForName(_ entityName: String!,
inManagedObjectContext context: NSManagedObjectContext!) -> AnyObject!

显然,您没有插入新对象,因此您确实需要一个可选值。也许您将类变量 managedObject 声明为 NSManagedObject!?尝试将其设置为 NSManagedObject? 并将运算符更改为 as?

关于ios - swift 核心数据 : error: Failed to call designated initializer on NSManagedObject class 'NSManagedObject' ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25504799/

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