2014-09-27 90 views
0

我想知道,在Swift中是否有替代extern "C"? 我想編寫一個簡單的Unity插件,並且作爲Obj-C noob,如果可能的話,我希望在Swift中使用它。 現在我有一個非常基本的OBJ-C代碼來顯示UIAlertView中使用在Swift中使用extern「C」?

extern "C" 
{ 
    void _addAlert() 
    //Whatever 
} 

,團結它迷上了

private static extern void _addAlert() 
{ 
    //Same whatever 
} 

我正在尋找一種方式來使用SWIFT代替的OBJ -C。 這可能嗎?

+0

你究竟期待extern「C」在Swift中做什麼?你不能在Swift中編寫C,所以能夠指定它如何鏈接甚至不相關。 Swift可以與C接口,但是你不能在C中嵌入Swift。 – drewag 2014-09-27 23:25:22

+0

@drewag現在我有一個非常基本的OBJ-C代碼來顯示使用 '的extern 「C」 { 無效_addAlert() } ' ,團結它迷上了'私人靜態外部無效(_addAlert UIAlertView中()' 我正在尋找一種方法來使用Swift而不是Obj-C – fivepointseven 2014-09-27 23:27:28

+0

所以你問的是如何從C中調用Swift代碼,或者更具體的來自Unity,你應該改寫你的問題來問這個問題。 – drewag 2014-09-27 23:32:21

回答

0

來自C/Objective-C的Swift cannot be used的頂級函數。所以顯然你不能從C/Objective-C鏈接到它。

1

可以將Swift與Unity結合使用。我已經完成了。

您將不得不在Objective-C中創建一個「包裝類」,它位於由Mono調用的C函數和您創建的Swift代碼之間。

這篇文章介紹瞭如何從Objective-C的調用雨燕:http://ericasadun.com/2014/08/21/swift-calling-swift-functions-from-objective-c/

不要忘記你的目標建設成爲一個較低的SDK不支持斯威夫特設置到iOS 7.0。