我将为Objective-C代码编写很多C ++函数(由于第三方函数)。我认为通过在Objective-C代码和C ++代码之间使用中间Objective-C ++文件包装来抽象出C ++代码可能是个好主意。我目前的布局是ViewController.m文件创建了我的包装器Objective-C ++类的实例。这个类调用它的实例方法,后者又调用C ++代码。下面给出了一个简单的版本。这是一个不好的方法吗?有没有更合适的方法来解决这个问题?对代码有任何其他批评吗?非常感谢!
ViewController.m
#import "ViewController.h"
#import "CppWrapper.h"
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidLoad
{
[super viewDidLoad];
CppWrapper *wrap = [[CppWrapper alloc] init];
double n = 5;
n = [wrap cppTimesTwo:n];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
}
@end
CppWrapper.mm
#import "CppWrapper.h"
#import "Cpp.h"
@implementation CppWrapper
- (double)cppTimesTwo:(double) number
{
return timesTwo(number);
}
@end
Cpp.cpp
#include "Cpp.h"
double timesTwo(double number)
{
return 2 * number;
}
答案 0 :(得分:2)
我们在一个项目中做了同样的事情来重用一些C源代码并且它运行得很好。我认为这是一个很好的方法。