oc和c++混編難度大嗎?

iOS開發有一定基礎,有公司給offer,說做iOS和c++混編,而且說應用里的東西90%都是用c++寫的,oc基本用來搭框架,可我對c++基本不了解,可以說零基礎,適合去做嗎?去做的話我會面臨怎樣的問題?難度怎樣?


OC 和 C++ 混編:沒有難度

C++:有難度


沒任何問題的,用oc把apple的部分封裝起來,就能和跨平台的C++接軌。


剛好,我現在手頭的項目就是ObjC,C++ ,以及swift混編的。

大概是這麼幾點:

  • mm文件中的C++,其實是objective c++,並不算嚴格意義上的C++
  • cpp文件可以在xcode中直接編譯。
  • objc常用的一些動態特性在objc++中會跪,比如block as parameter時候的參數列表問題,具體見 [RACSignal combineLatest:reduce:] wont compile as Objective-C++ · Issue #937 · ReactiveCocoa/ReactiveCocoa · GitHub。
  • swift不支持C++混編,也不能調用C++的類或者函數,得用OC包一層。倒是可以調用C的函數,可能是C++的語法太複雜了。
  • 寫C++的難度嚴重依賴於選擇框架的質量以及團隊其他人員的C++水平……


ObjC是會被轉義為C的,所以可以一定程度上理解為C和C++混編有沒有難度,其實答案就是沒有什麼難度,難度應該在C++怎麼寫和Conversation上吧。


用c++注意一下文件導入的傳染性,其他還好


POP就是純C++寫的


上學期在做(水)一個輸入法移植,原來是sunpinyin輸入法改進的c++代碼要移植到ios平台,作為一個源碼分析都找不全的的工程我直接拖到xcode裡面編譯去了,個人沒有一點ios經驗,根據錯誤提示把工程調通了,在c++源碼裡面加了幾句oc測試混編結果,問題大多都是原來在終端編譯移入ide所需要更改的衝突,最後能在ios上跑起來了。

所以其實混編其實不用管,有現成代碼之後就是一些error改改就好。


互相調用還是有一些小問題,搜索 Objective-C++


OC把源文件換成.mm 直接就能混編C++.

至於想學好C++,就得問輪子哥了 @vczh


.m變.mm


推薦閱讀:

TAG:iOS開發 | Xcode | C | ObjectiveC |