我将为我的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;
}

最佳答案

我们在项目中做过同样的事情,以重用一些C源代码,并且效果很好。我认为这是个好方法。

10-07 12:14