2012-03-20 118 views

回答

2

你有3種選擇:

1)如果你主要是寫在C++,並希望與期待可可字符串和集合的API進行通信,那麼核心基金會是一個C(因此C++) api創建並與基金會的許多課程進行互動。許多以NS爲前綴的可可類都有一個以CF爲前綴的等價物,並且可以互換使用。 2)如果你將C++代碼與Objective-C代碼集成在一起,那麼你可以選擇將接口類編譯爲objective-C++,它允許你在同一個源文件中混合使用這兩個類。所以它是有效的做這樣的東西,如vector.push_back([NSString stringWithFormat:@"string"])

3)有可能通過包括<objc/runtime.h>作爲C運行時庫訪問(足夠接近)整個Objective-C語言。我實際上並沒有想到在其他2種方法中使用這種方法的好理由,但是如果有一個很好的理由,則可能值得記住。

+0

謝謝,你能告訴我關於#2,我如何編譯文件作爲objective-C++? – Dmitriy 2012-03-21 20:31:54

+1

簡單的解決方案是將你的源文件擴展名改爲.mm;稍微不太激烈的是在Xcode中選擇你的C++源代碼文件,並將它的編譯器選項改爲ObjC++(通過檢查器) – geowar 2012-03-21 22:09:08