Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/cocoa/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cocoa NSTextView中的委托链接导致键入时EXC\u错误\u访问_Cocoa_Delegates_Exc Bad Access_Nstextview - Fatal编程技术网

Cocoa NSTextView中的委托链接导致键入时EXC\u错误\u访问

Cocoa NSTextView中的委托链接导致键入时EXC\u错误\u访问,cocoa,delegates,exc-bad-access,nstextview,Cocoa,Delegates,Exc Bad Access,Nstextview,我有一个子类NSViewController,它符合NSTextViewDelegate协议,其视图是NSView的一个子类(显然)。nib上有一个NSTextField文本框,我的NSViewController子类是它的委托。当我尝试在文本框中键入内容时,它抛出了EXC_BAD_访问权限,但当我删除委托链接时,我可以很好地键入内容。我还没有处理任何事件,我只是有链接。我已经尝试过类似的线程,但我认为我仍然需要了解如何将它们的解决方案应用到我的特定问题中。我需要为我的文本视图指定一个代理。我怎

我有一个子类NSViewController,它符合NSTextViewDelegate协议,其视图是NSView的一个子类(显然)。nib上有一个NSTextField文本框,我的NSViewController子类是它的委托。当我尝试在文本框中键入内容时,它抛出了EXC_BAD_访问权限,但当我删除委托链接时,我可以很好地键入内容。我还没有处理任何事件,我只是有链接。我已经尝试过类似的线程,但我认为我仍然需要了解如何将它们的解决方案应用到我的特定问题中。我需要为我的文本视图指定一个代理。我怎样才能解决这个问题

胜利属于我

这就是问题所在,用我所知道的最好的方式来描述:

在我的AppDelegate.m文件中,我将实例化
myCustomViewController
,并将其视图作为子视图添加到我的窗口的主视图中,如下所示:

myCustomViewController *myCustomVC = [[myCustomViewController alloc] initWithNibName...];
[self.view addSubview:myCustomVC.view];
但是我没有保留myCustomViewController,因此当包含此代码的方法返回
myCustomVC
时,被清除。后来,当我在与
myCustomVC
的子视图相关联的文本框中键入时,它正在将委托消息发送到
myCustomVC
的内存地址,该地址后来被解除分配


解决方案是将ViewController对象放入我的主xib中,并将其挂接到文件所有者的相应属性上。

NSViewController
使用
iOS
标记,移除
iOS
标记并使用
cocoa
标记您是否使用
NSTextField
的任何委托函数?我一开始不是,但是当我尝试使用
controlTextDidChange
时,同样的事情发生了。您是否将nstextfield出口的委托连接到文件所有者?EXC\u错误访问主要是由于内存处理错误。您是否使用过任何保留计数增加的属性。