スレッドで作成されたウィンドウが、スレッドの終了後も (ARC の下で) 生きている理由がわかりません。
これは次のように呼ばれます。
-(void)prefsWindow:(id)sender {
NSRect frame = NSMakeRect(200, 200, 640, 480);
NSWindow *window = [[NSWindow alloc] initWithContentRect:frame
styleMask:NSTitledWindowMask | NSClosableWindowMask
backing:NSBackingStoreBuffered
defer:NO];
[window center];
[window makeKeyAndOrderFront:NSApp];
[NSThread exit];
}
に
[NSThread detachNewThreadSelector:@selector(prefsWindow:) toTarget:self withObject:nil];
範囲外で死ぬと思います。ありがとうございました!