0

実際、私はプロジェクトを 1 か月経過しても問題なくビルドしてコンパイルしましたが、今日、プロジェクトを開いて何かを変更しようとすると、問題があり、その理由がわかりません!

このように見えます。

私はクラス(viewController.h/viewController.m)を持っています

viewController.h で、2 つのメソッドを宣言します

-(void) a;

-(void) b;

viewController.m で、それらを実装します

-(void) a
{... b()\\invoke method b; ...}

-(void) b
{...\\do something}

しかし、プロジェクトをビルドすると、エラーが発生します:

アーキテクチャ i386 の未定義のシンボル: "_b"、参照元: -[ViewController a] ViewController.o 内 (おそらく、dyld_stub_binding_helper) ld: アーキテクチャ i386 のシンボルが見つかりませんでした。clang: エラー: リンカ コマンドが終了コードで失敗しました。 1 (呼び出しを表示するには -v を使用)

どうすれば修正できますか?

4

2 に答える 2

1

C関数を使用する:

viewController.h:

void a();
void b();

viewController.m:

void a() {
    b();
}
void b() {
    // do something
}

または、Objective-Cメソッドを使用できます。

viewController.h:

- (void)a;
- (void)b;

viewController.m:

- (void)a {
    [self b];
}
- (void)b {
    // do something
}
于 2012-12-11T07:59:06.940 に答える
1

bObjective-C メソッドではなく、C 関数であるかのようにメソッドを呼び出そうとしています。正しい方法は次のとおりです。

- (void)a
{
    [self b];    // Call method b
}
于 2012-12-11T07:55:24.027 に答える