我对 ARC 下的对象生命周期有些困惑。这是一个我认为可能很常见的场景。
1)为了响应某些事件,从笔尖加载 NSViewController。
- (IBAction) doIt: (id) sender
{
InfoController *editor=[[InfoController alloc]initWithNibName:@"InfoController" bundle:nil];
[editor show: .... ]
}
2) InfoController 然后显示一个 NSPopover。
3) 一段时间后,用户在 NSPopover 之外点击。弹出框自行关闭。
但是 InfoController 什么时候发布呢?就此而言,是什么让它在doIt
回归后保持活力?在我的实现中,InfoController 是其 NSPopover 中控件的数据源和委托,但通常不会保留数据源和委托,对吗?