2012-03-09 41 views
0

任何人都知道調用Objective-C++代碼的Objective-C項目的示例項目。示例Objective-C項目調用Objective-C++代碼

我讀過所有的stackoverflow q關於讓一個調用其他,但沒有運氣。 如果我有一個工作的代碼示例會有所幫助。

我的Obj-C++是lib.a和一些C++頭文件。就這樣。

+0

你是什麼意思*「沒有運氣」*?你有什麼問題? – sch 2012-03-09 15:00:16

+0

@clearbrian你需要顯示你收到的代碼和錯誤。從您提供的信息中很難判斷出現了什麼問題。 – 2012-03-09 15:26:07

回答

0

這裏的示例項目我做了,它實際上很容易已瞭解,你可以從.M重命名你的類.mm或在項目設置中設置「編譯來源」來的Objective-C++。我在使用C++頭文件時遇到了一些問題,這些頭文件沒有C++實現,並且改變了Objective-C++幫助編譯所有東西的設置。

這裏是代碼https://github.com/libec/StackOverflow/tree/master/03-Obj-C%2B%2B

0

這是一個人爲的例子。如果沒有更多的關於你想要做什麼的信息,或者你收到的錯誤,那麼將不可能進一步引導你。請記住,任何調用C++/Objective-C++代碼或導入包含C++頭文件的代碼都必須編譯爲Objective-C++(使用.mm擴展名,Xcode將自動執行正確的操作)。

/*Objcpp.h 
**********/ 
@interface MyClass : NSObject 
{} 
- (void)myMethod; 
@end 

/*Objcpp.mm 
***********/ 
#import "Objcpp.h" 

@implementation MyClass 

- (void)myMethod { 
    //some c++ and/or objective-c calls 
} 
@end 


/*myobjc.h 
***********/ 

@interface MyObjCClass : NSObject 
{} 
- (void)someMethod; 
@end 

/*myobjc.mm 
***********/ 
#import "myObjCClass.h" 
#import "Objcpp.h" 

@implementation MyObjCClass 

- (void)someMethod { 
    MyClass *o = [[MyClass alloc] init]; 
    [o myMethod]; 
} 
@end