cocoa swift4 NSWindowのメモリ解放について
メイン画面のボタンを押した時に、プログラム上でNSWindowを使って別画面を生成していますが
×ボタンで閉じた後に、メモリが解放されていないため、再度生成するところで「EXC_BAD_ACCESS」となってしまいます。
window閉じた時にメモリを解放する「isOneShot」というのを使おうと思いましたが
OS X 10.14では使えなくなっているみたいでした。
そこで、isOneShotの代わりになるものはありますでしょうか?
もしくは、他に、×ボタンでwindowを閉じた際に、再度開く時にエラーにならないような仕組みは
どのようにすれば良いのでしょうか?
ViewController.swift
import Cocoa
class ViewController: NSViewController {
var window:NSWindow? = nil
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view.
}
override var representedObject: Any? {
didSet {
// Update the view, if already loaded.
}
}
@IBAction func createWindow(_ sender: Any) {
window = NSWindow(contentRect: NSMakeRect(0, 0, 500, 200), styleMask: [.titled, .closable, .miniaturizable], backing: .buffered, defer: false)
window!.title = "test"
window!.center()
window!.makeKeyAndOrderFront(self)
window!.isOneShot = true // これが使えない
}
}