Ios4 升级到ARC后代理指针问题

Ios4 升级到ARC后代理指针问题,ios4,delegates,automatic-ref-counting,memory-management,unsafe-unretained,Ios4,Delegates,Automatic Ref Counting,Memory Management,Unsafe Unretained,我刚刚将我的应用程序升级到ARC,但我对它如何处理带有委托的类存在问题。因为我的目标是iOS 4.0及以上版本,所以我使用\uu unsafe\u unretained和@property(unsafe\u unretained)来存储代理指针 但是,我现在发现,我在视图控制器中创建的服务(包括代理)在我删除该视图控制器后,现在挂起,这导致在解除分配视图控制器(代理)后尝试与该视图控制器(代理)通信。。。因此,启用僵尸时会出现错误 我如何更新视图控制器或服务中的代码,以便在移除视图控制器(从导航

我刚刚将我的应用程序升级到ARC,但我对它如何处理带有委托的类存在问题。因为我的目标是iOS 4.0及以上版本,所以我使用
\uu unsafe\u unretained
@property(unsafe\u unretained)
来存储代理指针

但是,我现在发现,我在视图控制器中创建的服务(包括代理)在我删除该视图控制器后,现在挂起,这导致在解除分配视图控制器(代理)后尝试与该视图控制器(代理)通信。。。因此,启用僵尸时会出现错误


我如何更新视图控制器或服务中的代码,以便在移除视图控制器(从导航控制器堆栈弹出)时,带有委托指针的服务也从内存中移除?

结果表明,不是我做错了什么

出现问题的NSZombie原来是由于
MKMapViewDelegate
,在解除分配它所属的视图控制器后,该代理继续发送“mapView:didUpdateUserLocation:”。我知道

我通过截取视图控制器中的“后退”按钮解决了此问题,并在弹出委托之前将其设置为零:

- (void)backButtonTapped
{
    self.mapView.delegate = nil;
    [self.navigationController popViewControllerAnimated:YES];
}
我不知道为什么MapKit会在代理被释放后抓住它。如果有人知道的话,我很高兴能了解更多