3

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;
}
4

1 に答える 1

2

一部の C ソース コードを再利用するプロジェクトで同じことを行ったところ、非常にうまく機能しました。これは良い方法だと思います。

于 2013-10-30T23:49:30.140 に答える