質問

のObjective-Cでは、あなたは@synchronized構文を使用して、いくつかのオブジェクトに同期化されているように、ブロックを宣言することができます。それは次のようになります:

@synchronized (self) {
    // Do something useful
}

しかし、私はあなたの静的メソッド(代わりにself+)を持っているときに正確-が参照しているものを興味があります。私は、Appleのドキュメントを見てみました、そして、彼らはそれがOKであることにほのめかすが、実際にそれを説明していません。私はそれが何を意味するのか興味があるだけだ、それが動作する知っています。

役に立ちましたか?

解決

クラス(静的)メソッドの内部selfは、クラスオブジェクトを参照します。

他のヒント

Objective-Cのselfでは、コンテキストによって決定されます。インスタンスメソッドでは、そのインスタンスが呼び出されるであろう。静的な方法では、クラスオブジェクト自体(インスタンスメソッドで[self class]のすなわち結果)であろう

は、上記の回答では、単に、あるスレッドが@synchronized(自己)を使用してインスタンスメソッドを呼び出し、別のスレッドが@synchronized(自己)を使用してクラスのメソッドを呼び出す場合、何の同期が2回の呼び出しの間起こらないことに注意してください彼らは同期のためにさまざまなオブジェクトを使用しているため。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top