Class

NSPort

An abstract class that represents a communication channel. 通信経路を表す抽象クラス。

Declaration 宣言

@interface NSPort : NSObject

Overview 概要

Communication occurs between NSPort objects, which typically reside in different threads or tasks. The distributed objects system uses NSPort objects to send NSPortMessage objects back and forth. Implement interapplication communication using distributed objects whenever possible and use NSPort objects only when necessary. 通信は、NSPortオブジェクト間に発生します、それらは概して異なるスレッドまたはタスクに属します。分散オブジェクトシステムは、NSPortオブジェクトを使ってNSPortMessageオブジェクトを後ろへそして前へ送ります。可能な時はいつでも分散オブジェクトを使ってアプリケーション間通信を実装してください、そして必要な時だけNSPortオブジェクトを使ってください。

To receive incoming messages, add NSPort objects to an instance of NSRunLoop as input sources. NSConnection objects automatically add their receive port when initialized. やって来るメッセージを受け取るには、NSPortオブジェクトそれらをあるNSRunLoopのインスタンスに入力ソースとして加えてください。NSConnectionオブジェクトは、初期化される時に自動的にそれらの受信ポートを加えます。

When the NSPort object receives a port message, it forwards the message to its delegate in a handleMachMessage: or handlePortMessage: message. The delegate should implement only one of these methods to process the incoming message in whatever form desired. handleMachMessage: provides a message as a raw Mach message beginning with a msg_header_t structure. handlePortMessage: provides a message as an instance of NSPortMessage, which is an object-oriented wrapper for a Mach message. If a delegate has not been set, the NSPort object handles the message itself. NSPortオブジェクトがポートメッセージを受け取る場合、それはメッセージをそれの委任先へとhandleMachMessage:またはhandlePortMessage:メッセージで転送します。委任先は、これらメソッドのうちの1つだけを実装して、何であれ望んだ形式でやって来るメッセージを処理すべきです。handleMachMessage:は、あるメッセージを生のMachメッセージとしてmsg_header_t構造体で開始して提供します。handlePortMessage:は、あるメッセージをNSPortMessageのインスタンスとして提供します、それはMachメッセージに対するオブジェクト指向ラッパーです。委任先が設定されていないならば、NSPortオブジェクトはメッセージそれ自身を取り扱います。

When you are finished using a port object, you must explicitly invalidate the port object prior to sending it a release message. Similarly, if your application uses garbage collection, you must invalidate the port object before removing any strong references to it. If you do not invalidate the port, the resulting port object may linger and create a memory leak. To invalidate the port object, invoke its invalidate method. あなたがあるポートオブジェクトの使用を終了する場合、あなたは明示的にそのポートオブジェクトを無効にしなければなりません、それにreleaseメッセージを送るより前にです。同様に、あなたのアプリケーションがガベージコレクションを使うならば、あなたはポートオブジェクトを、それへの何らかの強い参照を除去する前に無効にしなければなりません。あなたがポートを無効にしないならば、結果のポートオブジェクトは居残ってそしてメモリリークを作成するかもしれません。ポートオブジェクトを無効にするには、それのinvalidateメソッドを発動してください。

Foundation defines three concrete subclasses of NSPort. NSMachPort and NSMessagePort allow local (on the same machine) communication only. NSSocketPort allows for both local and remote communication, but may be more expensive than the others for the local case. When creating an NSPort object, using allocWithZone: or port, an NSMachPort object is created instead. Foundationは、NSPortの3つの具象サブクラスを定義します。NSMachPortNSMessagePortは、ローカルの(同じマシーン上の)通信のみを可能にします。NSSocketPortは、ローカルおよびリモートの接続の両方を想定します、しかしローカルの場合に対する他のものより高くつくかもしれません。NSPortオブジェクトを、allocWithZone:またはport使って作成している場合、NSMachPortオブジェクトが代わりに作成されます。

Topics 話題

Creating Instances インスタンスを作成する

Validation 検証

Setting the Delegate 委任先を設定する

Creating Connections 接続を作成する

Setting Information 設定情報

Port Monitoring ポート監視

Notifications 通知

Data Types さまざまなデータ型

Relationships 関係

Inherits From 継承元

Conforms To 次に準拠

See Also 参照

Sockets さまざまなソケット