iOS開發 OC Swift C C 混合程式設計

2021-10-06 16:32:21 字數 1021 閱讀 9837

oc、swift、c、c++可以互相呼叫,也可以混合程式設計,只需要注意一些規則和配置即可。

1、ios xcode檔案中m,mm,cpp,h字尾名的區別

.h:標頭檔案。標頭檔案包含類,型別,函式和常數的宣告。

.m:源**檔案。這是典型的源**副檔名,可以包含objective-c和c**。

.mm:源**檔案。帶有這種副檔名的源**檔案,除了可以包含objective-c和c**以外還可以包含c++**。僅在你的objective-c**中確實需要使用c++類或者特性的時候才用這種副檔名

.cpp:只能編譯c++,cpp檔案可以在xcode中直接編譯

當需要在源**中包含標頭檔案的時候,你可以使用標準的#include編譯選項,但是objective-c提供了更好的方法。#import選項和#include選項完全相同,只是它可以確保相同的檔案只會被包含一次。objective-c的例子和文件都傾向於使用#import。

.m和.mm的區別是告訴gcc在編譯時要加的一些引數。

mm檔案中的c++,其實是objective c++,並不算嚴格意義上的c++;

如果是.m檔案,可以用oc和c的**;

swift不支援c++混編,也不能呼叫c++的類或者函式,得用oc包一層。倒是可以呼叫c的函式,可能是c++的語法太複雜了。

常用場景:

如果你的oc**裡面有包含c++的引用或**,將此類更改為.mm即可;

例子:error:./zxing/cpp/core/src/zxing/common/counted.h:21:10: 'iostream' file not found

在引用zxing的時候#import用到了iostream,但是它是/iphoneos6.1/user/include/c++下面的類,故需要把類名改為.mm即可。

注意#import或#include的位置要在.mm檔案裡,如果在.h標頭檔案裡是沒用的。

在c++中呼叫oc:

pimpl (private implementation, 私有實現),不要在c++中依賴arc,最好自己手動管理。

敏捷開發和瀑布開發的混搭

現在這家公司的開發流程很奇怪,和以前的公司很不一樣 一 首先拿到乙個客戶需求,這個客戶需求 or 可能就只有一句話 做 x運維成本太高了,管理也很混亂,能不能給做個管理系統給控制一下 由於這個客戶很重要,所以雖然需求很不明確,連系統該做成啥樣都不知道,但是領導還是決定要做。於是專案組就啟動了。這個時...

mac開發 ios開發

但是,任何乙個作業系統上,只使用開發語言就去開發程式是不行的。還需要有介面庫。尤其是支援object c的介面庫。mac上使用oc開發應用程式,都會使用xcode這個ide,整合開發工具,xcode中整合了gui介面庫。可以直接拖動控制項到介面上。objective c是一門語言,而cocoa 是這...

汽車軟體開發與混動系統功能開發

2.應用層開發與simulink 建模 3 整合編譯 4.通訊 4.標定 5.混動部件的功能基礎 5.2 dcdc 5.3 電機 6.整車的扭矩結構 8 輔助指令碼 9.autosar 11.硬體知識 先大概寫個目錄 試圖根據自己的工作經驗,逐步完善形成一本汽車軟體開發與系統設計的實踐書。動力系統功...