oc和c++混編難度大嗎?
02-06
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 |