我正在开发一个使用'FileBrowser'CocoaPod在模拟器中加载文件的应用程序(使用SKSprites物理引擎)
我的GameViewController中有一个函数,该函数创建一个“ FileBrowser”实例,然后允许用户像下面这样设置它的“ didSelectFile”闭包:
let file = FileBrowser()
present(file, animated: true, completion: nil)
fileBrowser.didSelectFile = { (file: FBFile) -> Void in
print(file.displayName)}
这使我能够在从弹出式浏览器中选择文件后触发闭包中的一小段代码,并打印所单击文件的名称,但我不知道如何获取的值。 “ file.displayName”返回我的GameScene(我需要将其传递到该类实例以加载文件并更改级别,等等)。
我尝试将'String'返回添加到闭包中,但是我不能这样做。我也尝试过将GameScene传递给Closure,但这是行不通的。
那么,如果我无法编辑闭包的输入/输出,该如何将闭包内可检索的数据返回给我的GameScene? (它们由库定义)。
谢谢
答案 0 :(得分:0)
我解决了我的问题:
我要做的是给GameViewController类一个“场景”属性,然后在“ viewDidLoad()”函数内部添加:
self.scene = gameScene
然后在封闭中,我必须添加代码
let gameScene = self.scene as! GameScene
然后我可以在GameScene中编辑变量(例如:gameScene.numberofpoints = 100)
因此,简而言之,我想给GameViewController类一个'scene'变量来存储游戏场景,然后允许我从闭包内部更改此gameScene的属性。