我目前正在玩PlaygroundBook。从Doc,它说你可以使用LiveView.swift在liveView中呈现一个永远在线的视图。所以我在源文件夹中创建一个SceneViewController。在SceneViewController中,我创建了一个Sphere,其中lightingModel是 physicalBased ,我使用3D地图作为背景内容。


然后在LiveView中.swift


 import PlaygroundSupport
 let page = PlaygroundPage.current
 page.current.liveView = SceneViewController()



 但当我在iPad Air Playground中运行它时。我没有收到任何错误,但是liveView没有显示任何内容!


我花了很多年时间发现错误。我尝试使用相同的SceneViewController创建一个新的iOS项目,它工作得很好。我不知道。


最后,我尝试将lightingModel更改为.phong,并将背景更改为白色。
&#xA ;
然后神奇的事情发生了! liveView现在显示黑色球体和白色背景。


为什么?

&# xA;从WWDC会话中,我了解到我可以使用代理与Contents.swift和LiveView进程中的主进程进行通信。


接下来,我做了扩展名。


 扩展名SceneViewController:PlaygroundLiveViewMessageHandler {
 public func receive(_ message:PlaygroundValue){
 if case let .string(_)= message {
 changeColor()
 }
 }
}



 在Contents.swift中,我创建了一个新函数

& #xA; func addSky(){
如果让proxy = page.liveView为? PlaygroundRemoteLiveViewProxy {
 proxy.send(.string( “addSky”))
 }
}



 我称之为EveryTime,liveView 已更改,请参见下图。它与我第一次尝试使用3D地图作为背景时相同。

&#xA;&#xA;< strong>有谁知道它发生了什么?
&#xA;