簡體   English   中英

如何在XCode 4.2中一起使用c ++和Objective-c

[英]How to use c++ and objective-c together in XCode 4.2

在開發iphone應用程序時,我很難將c ++和Objective-c結合在一起。 我在應用程序中使用了第3方庫。 我有一個計划,要使用c或c ++來包裝庫,然后使用Objective-c來調用它。 在用c ++完成課程之后,我很難在Objective-c中使用它。 有樣本代碼嗎? 謝謝。

在Objective-C頭文件中。 我寫

#import <UIKit/UIKit.h>
#import "ZJTConstants.h"
#include "TTSAdapter.h"

class Adapter;
@interface ZJTVBlogViewController : UIViewController {
@private
    Adapter* adapter;
}
@end

在mm文件中,我寫道:

if (self) {
    adapter = Adapter::getInstance();
    // Custom initialization
}

是寫嗎?

在XCode中,有一個標志可以將所有文件編譯為Objective-C ++。 我用它來將龐大的C ++庫編譯成iOS程序。

如果您查看“構建設置”,則有一個寫為“將源編譯為”的位置。 有一個下拉菜單,您可以在其中選擇Objective-C ++。 在clang / gcc命令行中,我認為它是“ -x Objective-c ++”。

只需將文件重命名為擴展名.mm而不是.m

要將C ++代碼與Objective-C代碼混合使用,您將需要Objective-C ++編譯器。 默認情況下,XCode使用Objective-C編譯器編譯.m文件,使用Objective-C ++一個編譯.mm文件。

從Objective-C代碼調用C ++代碼涉及以.mm(而不是.m)結束文件,以便使用Objective-C ++編譯器。

該編譯器可以理解C ++和Objective-C。

換句話說,ObjC ++編譯器使您可以將C ++代碼直接放入Objective-C方法中,反之亦然。

看一下Cocoa_With_Carbon_or_CPP示例在Objective-C項目中使用C ++的策略(反之亦然)

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM