在创建一个旨在用于iPad应用的新的Swift Playground / .playgroundbook时,我经常会收到错误消息:“运行播放时出现问题。 在运行此播放时遇到了问题。 检查您的代码是否有错误。”
我发现这个问题是由于向我的实时视图(live view)添加某些子视图时引起的。更具体地说,我的目标是将UIImage分成多个部分并为它们创建新的UIImageViews:
for x in 0..<parts {
for y in 0..<parts {
//Create UIImageView with cropped image
let pieceView = UIImageView.init(frame: CGRect.init(x: CGFloat(x)*singleSize.width, y:CGFloat(y)*singleSize.height, width: singleSize.width, height: singleSize.height))
let imageRef = image.cgImage!.cropping(to: CGRect.init(x:0, y:0, width: 100, height: 100));
pieceView.image = UIImage.init(cgImage: imageRef!)
//Add them to an array
self.viewArray.append(pieceView)
}
}
这就是对我来说变得非常棘手的地方:现在添加7个UIImageView没有任何问题,但是一旦我想添加8个或更多的视图,游乐场就会停止工作并显示错误消息“Problem running playground…”(见上文)
到目前为止,我测试过以下内容:
- 使用相同图像添加UIImageView不会引起此问题
- 在后台线程中裁剪UIImage并在主线程上添加视图也没有帮助
- 创建UIImageView而不将其添加到实时视图中不会造成任何问题
- 代码在mac游乐场上执行时完全正常,无论要添加多少视图