Class

Port

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

Declaration 宣言

class Port : NSObject

Overview 概要

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

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

When the Port object receives a port message, it forwards the message to its delegate in a handleMachMessage(_:) or handle(_:) 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. handle(_:) provides a message as an instance of PortMessage, which is an object-oriented wrapper for a Mach message. If a delegate has not been set, the NSPort object handles the message itself. Portオブジェクトがポートメッセージを受け取る場合、それはメッセージをそれの委任先へとhandleMachMessage(_:)またはhandle(_:)メッセージで転送します。委任先は、これらメソッドのうちの1つだけを実装して、何であれ望んだ形式でやって来るメッセージを処理すべきです。handleMachMessage(_:)は、あるメッセージを生のMachメッセージとしてmsg_header_t構造体で開始して提供します。handle(_:)は、あるメッセージをPortMessageのインスタンスとして提供します、それは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 MessagePort allow local (on the same machine) communication only. SocketPort 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つの具象サブクラスを定義します。NSMachPortMessagePortは、ローカルの(同じマシーン上の)通信のみを可能にします。SocketPortは、ローカルおよびリモートの通信の両方を想定します、しかしローカルの場合に対して他のものより高くつくかもしれません。NSPortオブジェクトを、allocWithZone:またはport使って作成している場合、NSMachPortオブジェクトが代わりに作成されます。

Topics 話題

Validation 検証

Setting the Delegate 委任先を設定する

Setting Information 設定情報

Port Monitoring ポート監視

Notifications 通知

Data Types さまざまなデータ型

Relationships 関係

Inherits From 継承元

Conforms To 次に準拠

See Also 参照

Sockets さまざまなソケット