小编Ste*_*555的帖子

为什么关闭 NSWindow 后重新打开它时会收到 EXC_BAD_ACCESS?

我在双击事件后调用以下代码,以便在鼠标位置打开一个小窗口。它工作正常,并且每次都会重新出现在新位置,但如果我先手动关闭窗口,则会收到 EXC_BAD_ACCESS 错误。

win =  [[NSWindow alloc] initWithContentRect:frame
                                 styleMask:(NSTitledWindowMask | NSClosableWindowMask)
                                 backing: NSBackingStoreBuffered
                                 defer:false];
        [win makeKeyAndOrderFront:NSApp];
Run Code Online (Sandbox Code Playgroud)

并且窗口在调用上面代码的视图的接口中声明

 @interface myView : NSView
{
    NSWindow *win;
}
Run Code Online (Sandbox Code Playgroud)

如果相关的话,我正在使用 ARC,并且在调试器中我可以看到win在关闭之后以及尝试重新创建它之前它不是 nil,尽管它的 contentView 已变为 nil。

感谢您提供任何线索。

macos xcode exc-bad-access objective-c nswindow

7
推荐指数
1
解决办法
658
查看次数

Objective-C枚举错误?

我在类标题的顶部定义了一个枚举:

enum PresetSeq{kSeqClear=0, kSeqAllBeats, kSeqAllTicks};
Run Code Online (Sandbox Code Playgroud)

但是当我尝试使用枚举声明该类的方法时.

-(void)quickSetSeq:(PresetSeq)pattern  forChannel:(long)ch;
Run Code Online (Sandbox Code Playgroud)

我在"PresetSeq"之前得到错误:期望')'

如果我输入枚举枚举:

typedef enum  {kSeqClear=0, kSeqAllBeats, kSeqAllTicks} PresetSeq;
Run Code Online (Sandbox Code Playgroud)

然后编译器很高兴,但我不记得在C/C++中必须这样做.

enum必须是Obj-C中的typedef吗?

谢谢

史蒂夫

PS - 我看到了关于Obj-C枚举的其他帖子,但不是为什么这个简单的案例失败了.

c c++ enums objective-c

6
推荐指数
1
解决办法
3669
查看次数

标签 统计

objective-c ×2

c ×1

c++ ×1

enums ×1

exc-bad-access ×1

macos ×1

nswindow ×1

xcode ×1