пример проекта Objective-C, вызывающего код Objective-C ++ - PullRequest
0 голосов
/ 09 марта 2012

Любой знает пример проекта Objective-C, вызывающего код Objective-C ++.

Я прочитал все вопросы о переполнении стека о том, как заставить одного вызвать другого, но не повезло. Помогло бы, если бы у меня был пример кода, который работал.

Obj-C ++, который у меня есть, это lib .a и некоторые заголовки c ++. Вот и все.

Ответы [ 2 ]

0 голосов
/ 13 марта 2012

Вот пример проекта, который я сделал, его на самом деле легко понять, вы можете просто переименовать ваши классы из .m в .mm или в настройках проекта установить «Compile sources as» в Objective-C ++. У меня были некоторые проблемы с заголовками C ++, в которых также не было реализации C ++ - менялись настройки для компиляции всего, что помогло Objective-C ++.

Вот код https://github.com/libec/StackOverflow/tree/master/03-Obj-C%2B%2B

0 голосов
/ 09 марта 2012

Вот надуманный пример.Без дополнительной информации о том, что вы пытаетесь сделать, или об ошибках, которые вы получаете, будет невозможно вести вас намного дальше.Помните, что любой код, который вызывает код 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
...