我正在一个新项目中使用Swift样板代码来获取核心数据.My .xcdatamodeld文件使用单个属性(name)定义了单个实体(Task).

我有一个Task.swift文件,看起来像这样:

import CoreData

class Task: NSManagedObject {
    @NSManaged var name: String
}

当我运行这个程序时,它会起作用:

var firstTask = NSEntityDescription.insertNewObjectForEntityForName("Task",
    inManagedObjectContext: managedObjectContext) as NSManagedObject

firstTask.setPrimitiveValue("File my TPS reports", forKey: "name")

var error: NSError?

managedObjectContext.save(&error)

我甚至可以进入iOS模拟器正在使用的SQLite数据库,确认添加了行.

然而,当我运行与上面完全相同的代码,但使用as Task而不是as NSManagedObject时,我得到一个错误消息Thread 1: EXC_BREAKPOINT (code=EXC_I386_BPT, subcode=0x0),与var firstTask…行关联.如果我继续执行,每次我推进线程1时,线程1的顶部会得到EXC_BAD_ACCESS0 misaligned_stack_error_.

为什么这个演员会导致这一切?

推荐答案

确保你的类名字段实际上是Module.任务,其中Module是应用程序的名称.Swift中的CoreData类是有名称空间的.现在,您的对象作为NSManagedObject而不是任务被从上下文中拉出,所以as cast失败了.

Swift相关问答推荐

AirPods手势不发送AVAudioApp静音状态通知

如何在init()中使用setter/getters?

如何将CodingKeys作为数组而不是枚举传递到类外部的函数中?

如何在visionOS中定制悬停效果区域

SwiftUI 组合问题:通过 AppEventsManager 在 ViewModel 之间共享数据

如何在visionOS中将模型锚定在用户头部上方?

TabView 无法在屏幕上正确显示

在 macOS (Swift) 上获取 BSD 驱动器名称的最佳方法是什么?

Swift 有没有办法在不使用 switch 语句的情况下获取关联值?

如何以快速 Select 器菜单样式调整图像大小

`IndexSet` 永远不会是空的?

Vapor Swift 如何配置客户端连接超时

通用枚举菜单 SwiftUI

VStack SwiftUI 中的动态内容高度

如何使被拖动的对象成为前景(foreground)对象

如何实现 Swift 的 Comparable 协议?

Swift 动画 WithDuration 语法是什么?

为什么'nil' 与 Swift 3 中的 'UnsafePointer' 不兼容?

自定义 Google 登录按钮 - iOS

Swift 中的单元测试致命错误