我有一个模态视图控制器,它在它自己的上下文中创建核心数据更改,当我单击完成时,它会保存更改(调度合并更改通知),通知委托并关闭。
我的问题是,在我的主要上下文与编辑上下文的更改合并后,我需要委托接收消息。我希望在下一个运行循环中进行委托调用,但我遇到了对象生命周期的问题。我想到了以下几点:
- 拨打电话,
[delegate performSelector:withObject:afterDelay:]
但似乎无法识别该消息。我的委托符合NSObject
协议,但不包括延迟执行选择器。 - 在我的视图控制器中创建一个方法:
informDelegateWithObject:
调用委托方法,并在延迟后调用该方法。即[self performSelector:@selector(informDelegateWithObject:) withObject:.. afterDelay:..]
。但是,这可能会起作用,因为我的视图控制器正在被解除,如果延迟是几秒钟,那么它就会从内存中释放出来,并且在调用时不会导致崩溃吗? - 创建一个
NSInvocation
. 我有想过这个,但是,这个对象的生命周期是多少?如果我使用它创建它,[NSInvocation invocationWithMethodSignature:]
那么NSInvocation
对象不会被自动释放,并且不会出现在下一个运行循环中吗?更别说几秒钟了。当我的模态视图控制器被解除和释放时,我无法将调用对象存储在我的视图控制器中。
有什么建议么?