Just My Life & My Work

在Swift剛釋出沒多久,我就研究過如何在同專案整合Objective C和Swift。文章:

儘管還是傾向以Objective C來開發產品,然而Swift的發展日趨重要,不過我大膽推測,就算Apple再怎麼強推Swift,十年內Objective C領導地位依然屹立不搖!為什麼呢?實際接觸4年Swift後,發現Swift變化多端,若猶豫要學Swift還是Objective C可以參考:要學Objective-C還是Swift?

現在想要混編Objective C、Swift、C/C++,應也不是問題~

[iOS] 混編Objective C、Swift、C:C++.png

可以看到C語言副檔名:

  • .h
  • .c

Swift語言副檔名:

  • .swift

Objective C語言副檔名:

  • .h
  • .m

其中可以看到.mm,這代表Objective C++語言。

比較要注意的是.mm中若要引用C語言的程式,可以參考:[C/C++] 如何引用C標頭檔

若沒有寫關鍵外部引用C:

extern “C"
{
    #import Happy_Processing.h"
}

編譯就會出現以下錯誤訊息:

Undefined symbols for architecture arm64:

  “Happy_FilterProcess(short*, short*, short*)", referenced from:

      -[TPProcessViewController passSamples:] in TPProcessViewController.o

ld: symbol(s) not found for architecture arm64

clang: error: linker command failed with exit code 1 (use -v to see invocation)

如此Xcode編譯器就能以副檔名來分辨要怎麼去Complie。

參考:

廣告

隨意留個言吧:)~

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com 標誌

您的留言將使用 WordPress.com 帳號。 登出 /  變更 )

Google+ photo

您的留言將使用 Google+ 帳號。 登出 /  變更 )

Twitter picture

您的留言將使用 Twitter 帳號。 登出 /  變更 )

Facebook照片

您的留言將使用 Facebook 帳號。 登出 /  變更 )

連結到 %s

This site uses Akismet to reduce spam. Learn how your comment data is processed.

標籤雲

%d 位部落客按了讚: