0

関数が何であるかは知っていますが、プロジェクトにいくつか書き込もうとしています。私がアイデアを得た Lynda.com の Objective-C に関するビデオ シリーズを見たところです。

ビデオでは、次のような関数を記述できることが説明されています。

void declareWebView ()

ただし、そのようにコードに書き込むと、_webView と self (self.view として) が使用できないというエラーが表示されます。

次のように書くと:

-(void) declareWebView

それから私は問題を抱えていません。

最初のものを正しく取得する方法についてのアイデアはありますか? 私の知る限り、2番目の書き方ではパラメータを設定できません。

4

2 に答える 2

2

最初はあなたが言ったように、関数と呼ばれます。これは Objective-C の C 部分の一部であり、オブジェクトやクラスに接続されていないため、変数selfやオブジェクトのインスタンス変数には意味がありません。次のように、オブジェクトである変数を渡すことができます。

void my_func(NSString *string, id someObject, int someInt);

void my_func(NSString *string, id someObject, int someInt)
{
    NSLog(@"string = %@, someObject = %@, someInt = %d",string,someObject,someInt);
}

2 つ目はメソッドで、メソッドでは self にアクセスでき、インスタンス メソッド内ではインスタンス変数にアクセスできます。メソッドの前の「-」を「+」に置き換えるとクラスメソッドになります。クラス メソッドでは、インスタンス変数にアクセスできselfず、インスタンスではなくクラス自体を参照します。

お役に立てれば!

于 2012-10-05T04:58:26.007 に答える
0

最初の方法は言語 C で記述されています。2 番目の方法は Objective-C で記述されています。Objective-C メソッドは、2 番目の方法で宣言する必要があります。C 関数内からオブジェクトのプライベート メンバーとプロパティに直接アクセスすることはできませんが、Objective-C オブジェクトでアクセサ メソッドを使用して C 関数から呼び出すことはできます。

于 2012-10-05T04:56:49.880 に答える