10

这适用于 XCode 6 和 Swift ......

我正在尝试向托管对象上下文发出获取请求,但它没有返回正确的子类。

我已经将数据模型数据建模器配置中的子类设置为我的自定义子类的名称,并且在代码中,它正在扩展 NSManagedObject 类。

有任何想法吗?

在此处输入图像描述 在此处输入图像描述 在此处输入图像描述

4

3 回答 3

23

刚刚想出了解决办法。

我必须添加该@objc属性以允许该类与 Objective-C 兼容。

现在获取请求正在返回正确的结果Tasks[]

import Foundation
import CoreData

@objc(Task) // make compatible with objective-c
class Task : NSManagedObject
{
    @NSManaged var note: String!
    @NSManaged var completed: Bool
}

参考:https ://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-XID_36

于 2014-06-06T05:20:26.617 回答
8

使用@objc(Task)似乎正在工作,但您也可以将数据模型数据建模器配置编辑为名称ToDoList.Task,而不仅仅是Task. Task如果在 Objective-C 代码中的其他任何地方使用,这也将起作用并避免类冲突。

于 2014-06-14T19:26:22.933 回答
1

检查以确保在模型中选择任务时,在“实体”检查器(屏幕右侧,实用工具窗格)中,其类字段已正确填写“任务”(默认情况下为空白)。

于 2014-06-06T03:36:19.827 回答