-1

タイトルが説明したように、xib ファイルのコンポーネントを .h ファイルにドラッグしてアウトレットなどを便利に作成するdoublePickerと、xcode は次のviewDidUnloaded:ようなメソッドでステートメントを作成するのに役立ちます。

[self setDoublePicker:nil];

それとの違いは何ですか:

self.doublePicker = nil;

どちらがより良いパフォーマンスを発揮しますか?

4

4 に答える 4

2
Foo *foo = [[Foo alloc] init];
foo.bar = YES;
[foo setBar:YES];

最後の 2 行はまったく同じようにコンパイルされます。これを変更する唯一のことは、プロパティに getter および/または setter 属性が指定されている場合です。ただし、メッセージが送信されるかどうかではなく、送信されるメッセージが変更されるだけです。

if ([someView isEmpty]) { /* ... */ }
if (someView.empty) { /* ... */ }

両方の行で同じ結果が得られます。. ドット表記法をよりよく理解するために、これを一度参照してください。

于 2013-03-21T09:26:56.520 に答える
1

シンプルな最初の 1 つは、名前が であるメソッドを呼び出しており、2 番目はとしてsetDoublePicker
設定したメソッドです。self.doublePickernil

詳細については、この Question Difference between self.var と単に var をお読みください。

また、この公式ドキュメントもお読みください。

于 2013-03-21T09:32:34.627 に答える
1

それらは同等です。Objective-C プロパティを使用して値を設定することfoo = nilは、 を呼び出すことと同じsetFoo:nilです。見る:

于 2013-03-21T09:20:32.330 に答える
1

インスタンス変数にカスタム セッター メソッドまたはゲッター メソッドを使用していない場合、どちらも同じです。カスタム セッターまたはゲッターを使用している場合、以下のコードで警告が表示されます。

[self setDoublePicker:nil ];
于 2013-03-21T09:33:22.107 に答える