XCode在Swift Playground中分配10k对象时崩溃



我通过为输入文件中的每个数字分配一个对象来解决一个难题(代码2022第8天出现)。使用样例输入(25位数字),它可以正常工作,但不能扩展到完整输入文件中的99^2位数字。Xcode在分配对象后停止响应。

我需要注意的限制是什么?

import Foundation
let sampleInput = """
30373
25512
65332
33549
35390
"""
let fileURL = Bundle.main.url(forResource: "input", withExtension: "txt")
let content = try String(contentsOf: fileURL!, encoding: String.Encoding.utf8)
//Using a class because classes are passed by reference, 
//so I can create a transposed view the grid containing the same trees
class Tree {
var height: Int
var visibleFromLeft: Bool = false
var visibleFromRight: Bool = false
var visibleFromTop: Bool = false
var visibleFromBottom: Bool = false
var visible: Bool {
get {
return visibleFromLeft || visibleFromRight || visibleFromTop || visibleFromBottom
}
}
init(height: Int) {
self.height = height
}
}
let gridOfRows = content.split(separator: "n").map({rowStr in
var row: [Tree] = []
for c in rowStr {
row.append(Tree(height: Int(String(c))!))
}
return row
})

Playground并不能像一个普通项目那样处理那么多事情。其他人也有同样的问题。这是一个Stack Overflow的帖子,解释了一般的想法。

奇怪的是,有人在2021年代码出现时遇到了同样的问题,并且同样的问题也出现在他们身上。

最终,Playground与实际项目的期望似乎有很大不同,XCode也没有期望达到相同的计算水平。

最新更新