示例Objective-C项目调用Objective-C ++代码

时间:2012-03-09 14:46:20

标签: objective-c objective-c++

任何人都知道Objective-C项目调用Objective-C ++代码的示例项目。

我已经阅读了所有关于让一个人打电话给另一个但没有运气的stackoverflow问题。 如果我有一个有效的代码示例会有所帮助。

我所拥有的Obj-C ++是一个lib .a和一些c ++头文件。多数民众赞成。

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:0)

这是我制作的示例项目,它实际上很容易取消,您可以将类从.m重命名为.mm或在项目设置中将“编译源代码”重命名为Objective-C ++。我在C ++头文件方面遇到了一些麻烦,这些头文件没有C ++实现 - 改变设置以编译所有内容,因为Objective-C ++有帮助。

这是代码https://github.com/libec/StackOverflow/tree/master/03-Obj-C%2B%2B