这适用于XCode 6和Swift ......
我正在尝试对托管对象上下文进行获取请求,但它没有返回正确的子类 .
我已经将数据模型数据建模器配置中的子类设置为我的自定义子类的名称,并且在代码中,它正在扩展NSManagedObject类 .
有任何想法吗?
检查以确保在“实体”检查器(屏幕右侧,“实用程序”窗格)中,在“模型”中选择“任务”时,其“类”字段已正确填写“任务”(默认情况下为空) .
刚刚想出了解决方案 .
我必须添加 @objc 属性以允许该类与Objective-C兼容 .
@objc
现在,获取请求返回 Tasks[] 的正确结果
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
使用 @objc(Task) 似乎正在工作,但您也可以将数据模型数据建模器配置编辑为名称 ToDoList.Task 而不仅仅是 Task . 如果在Objective-C代码中的任何其他地方使用 Task ,这也会起作用并避免类冲突 .
@objc(Task)
ToDoList.Task
Task
3 回答
检查以确保在“实体”检查器(屏幕右侧,“实用程序”窗格)中,在“模型”中选择“任务”时,其“类”字段已正确填写“任务”(默认情况下为空) .
刚刚想出了解决方案 .
我必须添加
@objc
属性以允许该类与Objective-C兼容 .现在,获取请求返回
Tasks[]
的正确结果参考:https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4-XID_36
使用
@objc(Task)
似乎正在工作,但您也可以将数据模型数据建模器配置编辑为名称ToDoList.Task
而不仅仅是Task
. 如果在Objective-C代码中的任何其他地方使用Task
,这也会起作用并避免类冲突 .