1. ホーム
  2. objective-c

[解決済み] Objective-Cで`oneway void`の使用例?

2022-10-16 12:14:11

質問

NSObject.hの中に奇妙なキーワードを見つけました。

- (oneway void)release;

Webで検索したところ、非同期メッセージパッシングに関連するもので、Erlangのメッセージパッシングと似ていることを知りました。

これは多くの面白いものを作ることができそうですね。 このキーワードの良い使用例は何でしょうか?

どのように解決するのですか?

oneway は分散オブジェクト API で使用され、異なるスレッドやアプリケーション間で objective-c オブジェクトを使用できるようにします。これは、メソッドが戻るまで呼び出し側のスレッドをブロックしないようシステムに指示します。これがないと、メソッドの戻り値の型がvoidであっても、呼び出し元はブロックされます。明らかに、void 以外のものでは決して使用されません。そうすると、メソッドは何かを返しますが、呼び出し元はそれを取得しないことになるからです。

分散オブジェクトの詳細については Cocoaの概念的なDistrObjects .