要么我做错了什么,要么我发现Xcode 7上有严重的内存泄漏。
我正在尝试制作一个简单的OS应用程序,它使用绑定从对象数组中更新表视图。
我创建了一个简单的模型:
class Episode: NSObject {
var path: NSURL
var series: String
var season: Int
var number: Int
var name: String
init(path:NSURL, series:String, season:Int, number:Int, name:String) {
self.path = path
self.series = series
self.season = season
self.number = number
self.name = name
}
} 然后,在ViewController中指定一个插曲数组,并在viewDidLoad方法中添加两个项
import Cocoa
class ViewController: NSViewController {
var selectedEpisodes = [Episode]()
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
selectedEpisodes.append(Episode(path: NSURL(string: "file:///")!, series: "Foo", season: 1, number: 1, name: "Foobar"))
selectedEpisodes.append(Episode(path: NSURL(string: "file:///")!, series: "fOO", season: 10, number: 99, name: "fOObAR"))
}
override var representedObject: AnyObject? {
didSet {
// Update the view, if already loaded.
}
}
}然后,我添加了一个表视图到故事板,有5列,每个属性的史诗类1。我使用以下配置向NSArrayController场景添加了一个NSArrayController:


然后选择每个NSTextField的NSTableCellView并将这个绑定配置添加到其中:

当我开始构建项目时,它构建得很好,直到它到达挂起的故事板的编译为止。一个名为ibtoold的进程启动,它很快就开始使用大量内存。
即使我停止了Xcode的编译,这个过程也不会停止。如果我不手动强制退出,它会迅速占用所有可用内存,直到整个系统崩溃。操作系统暂停其他应用程序等,以试图拯救您,但在这一点上,您只能强制重新启动计算机。
我.我做错了什么还是这是个虫子?如果我做错了什么,它是什么,如果不是,我如何修复这个简单的应用程序?
谢谢您抽时间见我。
发布于 2015-12-11 13:43:28
在类中添加deinit,并查看是否在控制台上出现重新初始化的消息。
class Episode: NSObject {
var path: NSURL
var series: String
var season: Int
var number: Int
var name: String
init(path:NSURL, series:String, season:Int, number:Int, name:String) {
self.path = path
self.series = series
self.season = season
self.number = number
self.name = name
}
deinit {
print("\(name) is being deinitialized")
}
} https://stackoverflow.com/questions/34223008
复制相似问题