使用CoreData的Objective-C + Swift - 无法将'EntityName'的值类型赋值为'EntityName!'

时间:2016-12-12 21:25:06

标签: ios objective-c swift core-data

塞纳里奥

我正在开发一个项目,我正在将Swift 3合并到Objective-C项目中。该项目正在使用CoreData,在我的Objective-C $( document ).ready(function() { $("#text").stick_in_parent(); $("#pic1").stick_in_parent(); $("#pic2").stick_in_parent(); $("#pic3").stick_in_parent(); }); 中,我声明了一种类型的我的“EntityName”,并尝试在我的Swift 3类中进行分配并且出现构建错误“无法将”EntityName“的类型分配给输入'EntityName!'“。

CODE

AppDelegate.h

AppDelegate

Swift Class

// Declaration
@property (strong, nonatomic) EntityName * entity;

错误

// Array Property
var entityList = [EntityName]()

...

// Assignment
let appDelegate:AppDelegate = UIApplication.shared.delegate as! AppDelegate
appDelegate.entity = self.entityList[indexPath.row] // throws error

我做了什么

1)

can not assign type of 'EntityName' to type 'EntityName!'

错误

appDelegate.entity = self.entityList[indexPath.row] as EntityName! // throws error

2)

can not assign type of 'EntityName!' to type 'EntityName!'

错误

appDelegate.entity = self.entityList[indexPath.row] as EntityName? // throws error

问题

我如何纠正这一点,继续我的一天?

1 个答案:

答案 0 :(得分:0)

经过一些试验和错误后,我找到了解决此问题的方法。就我而言,我必须遵循以下步骤:

1)导航并选择CoreData模型...

AppName.xcdatamodeld

2)在右侧,查看文件检查器...

enter image description here

代码生成部分中的

3),选择Objective-C作为语言...

enter image description here

我的.xcdatamodeld文件代码生成设置为Swift。我相信古老的格言,“Swift更容易符合Objective-C而不是Objective-C到Swift”在这里是正确的。