PlaygroundRemoteLiveViewProxy Class
PlaygroundRemoteLiveViewProxyクラス
An object that enables message passing between a live view and the main playground page.
あるオブジェクト、それはライブビューとメインプレイグラウンドページの間で渡されるメッセージを可能にします。
Conforms To
次に準拠
Overview
概要
The main playground page uses a PlaygroundRemoteLiveViewProxy
downcast of the current always-on live view for exchanging messages. The downcasted object gives access to the remote always-on live view by a forced downcast of the current live view. The downcast succeeds if a live view that supports the PlaygroundLiveViewMessageHandler Protocol is executing.
メインプレイグラウンドページは、現在の常時接続ライブビューのPlaygroundRemoteLiveViewProxy
ダウンキャウトをメッセージのやり取りのために使います。ダウンキャストされたオブジェクトは、リモートの常時接続ライブビューへのアクセスを、現在のライブビューの強制ダウンキャストによって提供します。PlaygroundLiveViewMessageHandler Protocolをサポートするライブビューが実行されているならばダウンキャウトは成功です。
The following example code shows the playground page using a proxy for the live view to set up a message listener. Lines 3-8 declare MyClassThatListens
, a class that receives messages by conforming to the PlaygroundRemoteLiveViewProxyDelegate Protocol. Line 10 sets proxy
to a downcast of the current always-on live view. Line 11 sets myListener
to an instance of MyClassThatListens
, and line 12 sets the delegate for the proxy to myListener
. Messages from the always-on live view will now be sent to myListener
.
以下の例コードは、ライブビューのためのプロキシを使ってプレイグラウンドページを示して、メッセージリスナーを準備します。行3-8はMyClassThatListens
、PlaygroundRemoteLiveViewProxyDelegateプロトコルに準拠することによってメッセージを受け取るクラスを宣言します。行10は、proxy
を現在の常時接続ライブビューのダウンキャストに設定します。行11は、myListener
をMyClassThatListens
のインスタンスに設定します、そして行12はプロキシのための委任先をmyListener
に設定します。常時接続ライブビューからのメッセージは、現在myListener
に送られます。
import PlaygroundSupport
class MyClassThatListens: PlaygroundRemoteLiveViewProxyDelegate {
func remoteLiveViewProxy(_ remoteLiveViewProxy:
PlaygroundRemoteLiveViewProxy,
received message: PlaygroundValue) {
//…
}
}
let proxy = PlaygroundPage.current.liveView as! PlaygroundRemoteLiveViewProxy
let myListener = MyClassThatListens()
proxy.delegate = myListener
Instance Properties
インスタンスプロパティ
delegate
A delegate that can receive messages from the live view by conforming to the PlaygroundRemoteLiveViewProxyDelegate Protocol.
委任先、それはメッセージをライブビューからPlaygroundRemoteLiveViewProxyDelegateプロトコルに準拠することによって受け取ることができます。
Declaration
宣言
weak var delegate: PlaygroundRemoteLiveViewProxyDelegate? { get set }
Instance Methods
インスタンスメソッド
receive(_:)
Allows the handler to receive a live view message as a PlaygroundValue
from a remote object.
ライブビューメッセージをリモートオブジェクトからのPlaygroundValue
として受け取ることをハンドラに可能にします。
Declaration
宣言
func receive(_ message: PlaygroundValue)
Parameters
パラメータ
message: A PlaygroundValue Enumeration with an associated value.
message: 関連値値を持つPlaygroundValue列挙。
Discussion
解説
The following example receives a dictionary with a command from a remote object. Line 2 checks if the message
argument is a dictionary and line 3 gets the command name. The rest of the method parses the command and takes appropriate action.
以下の例は、リモートオブジェクトからのコマンドを持つディクショナリを受け取ります。行2は、message
引数がディクショナリかどうか調べます、そして行3はコマンド名を取得します。メソッドの残りは、コマンドを構文解析して適切なアクションを起こします。
func receive(_ message: PlaygroundValue) {
guard case let .dictionary(dict) = message else { return }
guard case let .string(commandName)? = dict["command"] else { return }
// do something with commandName which contains the value stored in "command" key
…
}
send(_:)
Allows the handler to send a message to a remote object. This method cannot be overridden.
メッセージをリモートオブジェクトに送ることをハンドラに可能にします。このメソッドはオーバーライドされることができません。
Declaration
宣言
func send(_ message: PlaygroundValue)
Parameters
パラメータ
message: A message encoded as a PlaygroundValue Enumeration.
message: PlaygroundValue列挙としてエンコードされるメッセージ。
Discussion
解説
Calling this method requires an open connection to a remote object.
このメソッドの呼び出しは、リモートオブジェクトへの開いた接続が必要です。
liveViewMessageConnectionClosed()
Informs the delegate that the connection to the remote live view has been closed.
委任先にリモートライブビューへの接続が閉じられてしまっているのを告知します。
Declaration
宣言
func liveViewMessageConnectionClosed()
PlaygroundPage Class
PlaygroundPageクラス
Copyright © 2018 Apple Inc. All rights reserved. Terms of Use | Privacy Policy | Updated: 2018-04-30