Objective c 尝试创建NSSpeechSynthesizer实例时获取EXC_BAD_访问权限
我收到“程序接收信号:EXC\u坏访问”,我不知道为什么 这是我的界面Objective c 尝试创建NSSpeechSynthesizer实例时获取EXC_BAD_访问权限,objective-c,xcode,macos,cocoa,Objective C,Xcode,Macos,Cocoa,我收到“程序接收信号:EXC\u坏访问”,我不知道为什么 这是我的界面 #import <Cocoa/Cocoa.h> @interface AppController : NSObject { NSSpeechSynthesizer *speechSynth; } 我已经包括了Cocoa和AppKit框架在更改IVAR值之前,您应该始终检查init方法中的self是否为nil: - (id)init { self = [super init]; if
#import <Cocoa/Cocoa.h>
@interface AppController : NSObject {
NSSpeechSynthesizer *speechSynth;
}
我已经包括了Cocoa和AppKit框架在更改IVAR值之前,您应该始终检查
init
方法中的self
是否为nil:
- (id)init
{
self = [super init];
if (self)
{
speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil];
}
return self;
}
我知道,为了简单起见,请删除它。无论如何,这在我的例子中不是问题。正如Nekto在评论中所建议的,这段代码中缺少了一些东西。如上所述,这不会崩溃。为了简单起见,您还删除了哪些内容?如何初始化AppController,它是在XIB中实现的?这段代码是正确的,所以bug必须在类外部。
- (id)init
{
self = [super init];
if (self)
{
speechSynth = [[NSSpeechSynthesizer alloc] initWithVoice:nil];
}
return self;
}