通过NSOperation处理目标/动作弱引用

| 我正在使用ѭ0来处理iOS应用中的后台处理,并且试图了解目标/操作模式。在委托模式中,委托被保留为弱引用,委托对象负责将另一个对象的委托字段设置为nil,然后再等于1。据我所知,在目标/行动模式中,出于类似的原因,目标被视为弱参考。但是,当目标对象
dealloc
s时,要将目标字段“ѭ2”出“目标”字段似乎并不容易,而当
NSOperation
s时,释放目标时操作仍可能坐在队列上。 在这种情况下(“ 0”执行后台处理,然后使用目标/操作将值返回给“ 0”的创建者)应如何处理内存管理?     
已邀请:
        如“目标”中所述,取决于控件是否可以发送操作,由您确定目标是否可用。实际上,这不是问题,因为目标通常是在控件之前创建并在控件之后释放的控制器。 如果您要通过操作发送操作消息,则需要确保在操作完成之前不会释放目标。一种方法是让目标保留自身,直到操作完成。 另一种方法可能是使用操作和目标都已知的中间对象。该操作可以将中间对象视为目标的代理,然后将操作发送给它,而不是直接将其发送给目标,并且如果目标被重新分配,则目标可以适当地更新中间对象。目标和操作都可以保留中间体而不会产生保留周期。我不确定该方法是否是我的首选-似乎有点复杂-但这可能会有所帮助。     
        UIControl接受目标的__weak引用,因此target-action方法不会更改目标的生存期。 NSTimer使用目标的__strong引用,直到NSTimer对象解除分配后,目标才会解除分配。这可能会导致保持圆。 尝试使用此pod:https://github.com/Elenionl/ELAutoSelector     

要回复问题请先登录注册