【发布时间】:2019-08-07 01:33:03
【问题描述】:
对于今年的 WWDC 奖学金,要求的格式是 Swift Playground。我正在一个应用程序中构建我的游乐场,其中 UITableViewCells 中的滑块通过自定义委托连接到 SCNScene 和 SCNNode 和 SCNParticleSystem 。它作为一个应用程序在 Mac 上运行时运行得非常好,但是当它在 iPad 上的 swift playground 中运行时,委托方法在恒定数量的迭代后崩溃。我已经确定它不是节点本身的方法,因为我做了这个print("Hello"),但它仍然以完全相同的 96 次迭代崩溃。该节点已在源文件和主操场文件中。任何想法或帮助将不胜感激。
委托
protocol ReturnParameterDelegate {
func parameter1(value: Float)
func parameter2(value: Float)
func defaultParameter(value: Float)
}
表格视图单元格
@objc private func returnValue() {
guard let delegate = delegate else { return }
print(self.parameter.title)
switch self.parameter.title {
case ParameterNames.parameter1:
delegate.parameter1(value: self.slider.value)
...
}
}
场景
public func parameter1(value: Float) {
node.changeValue(value: value)
}
...
【问题讨论】:
-
不幸的是,在调试方面,游乐场有点糟糕。我会将代码粘贴到实际项目中并运行它,以便当它崩溃时您可以在控制台中看到实际的错误消息;它应该提供更多信息。可能是一些资源问题,您要么泄漏,要么移动客户端的可用空间比 Mac 少,但没有错误,这只是猜测。
-
花费了很多小时后,我确定我达到了 Swift Playgrounds 的技术极限。我在滑块上运行了一个 SCNPropertyController 并且应用程序正常工作,游乐场没有。我将追求限制次数和滑块可以调用。
标签: ios swift protocols scenekit swift-playground