在Cocoa上创建后窗口消失了

时间:2016-05-12 06:57:13

标签: c++ objective-c macos cocoa

我有一个可可应用程序,可以创建一个窗口。

现在,在应用程序的其他部分,我想从类

创建另一个窗口

以下是我关注的代码,

在我定义的类的NSWindow* m_NSWindow;文件中:

.cpp

createWindow文件中,在函数内部(NSRect windowRect = {406,229,886,592}; m_NSWindow = [[NSWindow alloc] intiwithContentRect:windowRect styleMask:NSBorderlessWindowMask backing:NSBackingStoreBuffered defer:NO]autorelease]; [m_NSWindow setTitle:@"myWindow"]; [m_NSWindow makeKeyAndOrderFront:nil]; )我有以下代码:

<shape xmlns:android="http://schemas.android.com/apk/res/android" android:innerRadius="@dimen/button_numpad_size" android:thicknessRatio="1" android:shape="ring" android:useLevel="false" >

有人能指出我在这里做错了吗?

1 个答案:

答案 0 :(得分:1)

在窗口上调用autorelease会导致其引用计数在当前自动释放池的末尾递减为零(可能在当前事件的处理结束时,如果不是更快)。这导致它被解除分配,使其消失。

除非您希望它们消失,否则不要autorelease个对象。