解决“无法调用 NSManagedObject 类上的指定初始值设定项”

2023-12-12

我是 Swift 新手,我正在尝试学习如何使用 Core Data。但我收到了这个错误,我不确定我做错了什么。我在网上搜索并尝试了一些方法,但我无法得到正确的结果。

Failed to call designated initializer on NSManagedObject class 'FirstCoreData.Course'

当这一行执行时:

ncvc.currentCourse = newCourse

在这个函数中:

class TableViewController: UITableViewController, AddCourseViewControllerDelegate {

var managedObjectContext = NSManagedObjectContext.init(concurrencyType: NSManagedObjectContextConcurrencyType.MainQueueConcurrencyType)

override func prepareForSegue(segue: UIStoryboardSegue, sender: AnyObject?) {
    if segue.identifier == "addCourse" {
        let ncvc = segue.destinationViewController as! NewCourseViewController
        ncvc.delegate = self

        let newCourse = NSEntityDescription.insertNewObjectForEntityForName("Course", inManagedObjectContext: self.managedObjectContext) as! Course
        ncvc.currentCourse = newCourse

    }
}

通过“Create NSManagedObject Subclass...”为课程实体生成的类:

import Foundation
import CoreData

class Course: NSManagedObject {

// Insert code here to add functionality to your managed object subclass

}

And:

import Foundation
import CoreData

extension Course {

    @NSManaged var title: String?
    @NSManaged var author: String?
    @NSManaged var releaseDate: NSDate?

}

问题不在于您问题中的代码,而在于您作为其他答案的注释包含的代码片段:

var currentCourse = Course()

这不仅仅是声明currentCourse成为类型Course,它还创建了一个实例Course使用该标准的实体init方法。这是明确不允许的:您必须使用指定的初始值设定项:init(entity entity: NSEntityDescription, insertIntoManagedObjectContext context: NSManagedObjectContext?)。 Apple 文档中对此进行了描述here.

我怀疑您从未使用过上述 var 定义创建的实例,因此只需将其定义为类型Course?:

var currentCourse : Course?

由于它是可选的,因此您不需要设置初始值,但在使用时需要解开该值。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

解决“无法调用 NSManagedObject 类上的指定初始值设定项” 的相关文章

  • 在视图之间传递核心数据实体变量

    我无法理解如何在视图之间使用核心数据实体变量 为了更好地理解我的问题是什么 我的代码如下 View A 基本上 您必须将完整预算实体或相关预算实体的 ID 从视图 A 传递到视图 B 由于不知道您的应用程序的视图层次结构和逻辑 我假设您选择
  • 如何解决 CoreData mogenerator 未找到问题

    我收到如下所示的错误 我不知道我错过了什么 我该如何解决这个问题 如下图所示 Users nischalhada Documents XcodePro mnepalnews revisited 2 0 CoreData mogenerato
  • 带有 Core Data 对象的动态 UITableView 高度

    过去几天我一直在试图解决一个谜团 即为什么我的批处理大小为 20 的 NSFetchedResultsController 总是在获取完成后立即错误 即加载到内存中 我的所有对象 从而导致请求需要约 20 秒 事实证明 这是因为在我的 he
  • 按范围迭代数组

    我有一个数组 1 2 3 4 5 6 100 我希望将此数组迭代 5 次 具体来说 取数组的前 5 个数字并获取平均值 继续处理接下来的 5 个数字并获取平均值 依此类推 我尝试过多种方法 例如Dequeue和 for 循环但未能获得所需的
  • 如何在 iOS Swift 中获取来电的电话号码? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我想在我的应用程序中获取来电者的电话号码 请有人迅速为我提供这个问题的解决方案 您将永远无法获得来电的电话号码 因为这是用户的私人数据
  • 使用 Swift 的核心数据瞬态值

    有谁知道 或者有一个例子 如何使用 Swift 处理核心数据瞬态值 我知道在属性之前使用 NSManaged 但无法弄清楚如何编写逻辑以使用 Swift 构建瞬态值 复选标记短暂的数据模型中特定属性的字段 例如sectionTitle 为该
  • 编译托管对象模型时有什么方法可以忽略丢失的反向警告吗?

    标题几乎包含了问题 我们发布了一个应用程序 其数据模型的逆配置不正确 我们在下一个版本中使用新版本的数据模型修复了这些问题 但 Xcode 在编译以前的数据模型版本时仍然显示警告 我不想破坏将文档从旧数据模型迁移到新数据模型的能力 并且我非
  • 在 iOS 中对 Google 地图标记进行聚类

    我有一个基于地图的应用程序 使用 Google 地图的 iOS SDK 我需要在核心数据数据库中存储多达数千个项目 并在地图上用标记显示它们 出于性能和可用性的原因 我需要在用户缩小时对这些标记进行聚类 但我需要确保放置代表性标记 以便用户
  • Core Data 与 SQLite 3 [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • iOS 7 NS 单线程安全合并冲突

    重新排序两行后 在单线程应用程序上保存简单的数据时遇到问题 我已经成功地简化了编码以重现错误 并且希望其他人尝试这一点时得到第二个意见 这是一次健全性检查 因为我怀疑 iOS 7 引入的核心数据问题 而这在 iOS 6 中工作正常 首先 启
  • C# 或 Windows 相当于 OS X 的 Core Data?

    我迟到了 现在才开始在 OS X Cocoa 中使用 Core Data 它令人难以置信 并且确实改变了我看待事物的方式 C 或现代 Windows 框架中是否有等效的技术 即拥有可免费保存 数据管理 删除 搜索的托管数据类型 还想知道Li
  • 删除后台 moc 中的对象然后在主 moc 中刷新它会导致 NSFetchedResultsController 更新崩溃

    我遇到了一个NSObjectInaccessibleException我无法理解 Terminating app due to uncaught exception NSObjectInaccessibleException reason
  • 在 Swift 中检查一个数组是否包含另一个数组的所有元素

    我想为数组编写一个扩展来检查一个数组是否包含另一个数组的所有元素 在我的用例中它是字符串对象 但我一直得到 Cannot convert value of type T Generator Element to expected argum
  • 优化构建中通用函数的 Core Data Swift 转换失败

    我们有一个具有相当广泛的核心数据模型的应用程序 其中有许多用 Objective C 实现的自定义子类 但越来越多的用 Swift 编写的应用程序也使用这些子类 值得一提的是 我们使用 Xcode 7 3 1 针对 iOS 9 3 进行构建
  • Xcode 9.2 UIDocumentBrowserViewController:无法从 bookmarkableString 创建 url

    Update Xcode 9 3 已修复它 在创建 UIDocument 文件时UIDocumentBrowserViewController 默认 错误 无法解析书签 错误 错误域 NSFileProviderInternalErrorD
  • 使用 CommonCrypto 的 Swift AES 加密

    我正在开发一个 iOS 应用程序代码7 1 with 斯威夫特2 1我正在尝试进行简单的加密AES 128 位 and PKCS7填充使用通用加密库 该代码有效 但每次我尝试投射NSData反对NSString然后对于 String 我得到
  • 我应该在哪里保存想要长期保留的数据和文件,以及如何防止 iCloud 备份它们

    我有任意类型的文件 包括核心数据存储库 我需要保留这些文件 并且不要让 iOS 删除它们 通常 我不希望 iCloud 备份这些文件 我应该把它们保存在哪里 iOS5 0 及更早版本 5 0 1 和 5 1 及更高版本中保存文件的本地更改主
  • 在 xcode 4 中生成核心数据属性的代码

    在 xcode 3 中 数据模型构建器中有一个有用的功能 您可以突出显示实体中的某些属性 关系 右键单击 然后选择将方法和属性声明复制到剪贴板 如果您也想要 Objective c 2 0 属性声明 您可以选择 然后你可以将它们粘贴到你的
  • 更新/编辑 coreData 管理对象

    当用户单击 UITableView 中基于 cell accessoryType 的单元格时 我尝试编辑 CoreData 对象 以显示该项目是否已被单击 这是当前的代码 void tableView UITableView tableVi
  • Xcode 在每次启动时修改当前的 CoreData 模型版本

    我正在使用 Xcode 4 6 来处理使用 CoreData 的项目 数据模型现在是版本13 并且使用轻量级迁移 我的问题 每次启动时 Xcode 似乎都会修改 PROJECT xcdatamodeld xccurrentversion 文

随机推荐