2016-12-12 67 views
0

塞納里奧帶CoreData的Objective-C + Swift - 無法指定'EntityName'的值類型來鍵入'EntityName!'

我的工作,我合併斯威夫特3成Objective-C的項目一期工程。該項目正在使用CoreData和我Objective-C AppDelegate我聲明我的「EntityName」類型,並試圖在我的Swift 3類中分配,並且出現構建錯誤「無法指定'EntityName'的類型以鍵入'EntityName! 「」。


CODE

AppDelegate.h

// 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 

ERROR

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

WHAT我試圖

1)

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

ERROR

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

2)

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

錯誤

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

問題

如何糾正這一點,我的日子過呢?

回答

0

經過一些試驗和錯誤,我找到了解決這個問題。在我而言,我不得不請按照下列步驟操作:

1)瀏覽並選擇CoreData模型...

AppName.xcdatamodeld

2)右側,查看文件檢查器...

enter image description here

3)代碼生成部分,選擇Objective-C作爲語言...

enter image description here


.xcdatamodeld文件的代碼生成設置爲斯威夫特。我相信古老的格言「在Swift中更容易符合Objective-C而不是Objective-C到Swift」這一點在這裏是正確的。

相關問題