Iphone 发送到解除分配实例的消息

Iphone 发送到解除分配实例的消息,iphone,ios,memory-management,nszombie,Iphone,Ios,Memory Management,Nszombie,经过一天多的阅读问题和尝试应用答案后,我必须寻求更多的帮助 我的ios6应用程序在主屏幕上有一个表视图。选择单元格后,我们使用UINavigationBar访问视图控制器,UINavigationBar具有调用此方法的自定义“后退”按钮: - (IBAction)goback:(id)sender { [SVProgressHUD dismiss]; if(self.presentingViewController) { NSLog(@" Dismissing

经过一天多的阅读问题和尝试应用答案后,我必须寻求更多的帮助

我的ios6应用程序在主屏幕上有一个表视图。选择单元格后,我们使用UINavigationBar访问视图控制器,UINavigationBar具有调用此方法的自定义“后退”按钮:

- (IBAction)goback:(id)sender {
    [SVProgressHUD dismiss];
    if(self.presentingViewController) {
        NSLog(@"  Dismissing View Controller: %@.", self.presentingViewController);
        [self dismissViewControllerAnimated:NO completion:nil];
    }
}
通常,这种方法效果很好。只有在加载内容(使用json和AFNetworking)之后,快速按下后退按钮,它才会崩溃。5秒后,“后退”按钮工作正常,但如果我们在加载后立即单击它,则会出现以下错误:

[28103:c07]   Dismissing View Controller:     <UITabBarController: 0x7578170>.
[28103:c07] *** -[CustomViewController respondsToSelector:]: message sent to deallocated instance 0x1257cf70
如果需要进一步的信息,请告诉我。谢谢你的帮助

#   Address Event Type  RefCt   Responsible Library Responsible Caller
0   0x10291ff0  Malloc  1   UIKit   -[UIClassSwapper initWithCoder:]
1   0x10291ff0  Retain  2   UIKit   UINibDecoderDecodeObjectForValue
2   0x10291ff0  Retain  3   UIKit   -[UIRuntimeConnection initWithCoder:]
3   0x10291ff0  Retain  4   UIKit   -[UIRuntimeConnection initWithCoder:]
4   0x10291ff0  Retain  5   UIKit   UINibDecoderDecodeObjectForValue
5   0x10291ff0  Retain  6   UIKit   UINibDecoderDecodeObjectForValue
6   0x10291ff0  Retain  7   UIKit   -[UIStoryboardScene setSceneViewController:]
7   0x10291ff0  Retain  8   UIKit   -[UINib instantiateWithOwner:options:]
8   0x10291ff0  Release 7   UIKit   -[UINibDecoder finishDecoding]
9   0x10291ff0  Release 6   UIKit   -[UIRuntimeConnection dealloc]
10  0x10291ff0  Release 5   UIKit   -[UIRuntimeConnection dealloc]
11  0x10291ff0  Release 4   UIKit   -[UINibDecoder finishDecoding]
12  0x10291ff0  Release 3   UIKit   -[UINibDecoder finishDecoding]
13  0x10291ff0  Release 2   UIKit   -[UINibDecoder finishDecoding]
14  0x10291ff0  Retain  3   UIKit   -[UIStoryboardSegue initWithIdentifier:source:destination:]
15  0x10291ff0  Retain  4   UIKit   -[UIViewController setChildModalViewController:]
16  0x10291ff0  Retain  5   UIKit   -[UIApplication _addViewControllerForLockingStatusBarTintColor:]
17  0x10291ff0  Retain  6   UIKit   -[UINib instantiateWithOwner:options:]
18  0x10291ff0  Retain  7   UIKit   +[UIProxyObject addMappingFromIdentifier:toObject:forCoder:]
19  0x10291ff0  Retain  8   UIKit   -[UINib instantiateWithOwner:options:]
20  0x10291ff0  Retain  9   UIKit   +[UIProxyObject addMappingFromIdentifier:toObject:forCoder:]
21  0x10291ff0  Retain  10  UIKit   -[UIProxyObject initWithCoder:]
22  0x10291ff0  Retain  11  UIKit   -[UIRuntimeConnection initWithCoder:]
23  0x10291ff0  Retain  12  UIKit   -[UIRuntimeConnection initWithCoder:]
24  0x10291ff0  Retain  13  UIKit   -[UIRuntimeConnection initWithCoder:]
25  0x10291ff0  Retain  14  UIKit   -[UIRuntimeConnection initWithCoder:]
26  0x10291ff0  Retain  15  UIKit   -[UIRuntimeConnection initWithCoder:]
27  0x10291ff0  Retain  16  UIKit   -[UIRuntimeConnection initWithCoder:]
28  0x10291ff0  Retain  17  UIKit   -[UIRuntimeConnection initWithCoder:]
29  0x10291ff0  Retain  18  UIKit   -[UIRuntimeConnection initWithCoder:]
30  0x10291ff0  Retain  19  UIKit   -[UIRuntimeConnection initWithCoder:]
31  0x10291ff0  Retain  20  UIKit   -[UIRuntimeConnection initWithCoder:]
32  0x10291ff0  Retain  21  UIKit   -[UIRuntimeConnection initWithCoder:]
33  0x10291ff0  Retain  22  UIKit   -[UIRuntimeConnection initWithCoder:]
34  0x10291ff0  Retain  23  UIKit   -[UIRuntimeConnection initWithCoder:]
35  0x10291ff0  Retain  24  UIKit   -[UIRuntimeConnection initWithCoder:]
36  0x10291ff0  Retain  25  UIKit   -[UIRuntimeConnection initWithCoder:]
37  0x10291ff0  Retain  26  UIKit   -[UIRuntimeConnection initWithCoder:]
38  0x10291ff0  Retain  27  UIKit   -[UIProxyObject initWithCoder:]
39  0x10291ff0  Retain  28  UIKit   -[UIRuntimeConnection initWithCoder:]
40  0x10291ff0  Retain  29  UIKit   -[UIRuntimeConnection initWithCoder:]
41  0x10291ff0  Retain  30  UIKit   UINibDecoderDecodeObjectForValue
42  0x10291ff0  Retain  31  UIKit   UINibDecoderDecodeObjectForValue
43  0x10291ff0  Retain  32  UIKit   UINibDecoderDecodeObjectForValue
44  0x10291ff0  Retain  33  UIKit   UINibDecoderDecodeObjectForValue
45  0x10291ff0  Release 32  UIKit   -[UINib instantiateWithOwner:options:]
46  0x10291ff0  Release 31  UIKit   +[UIProxyObject removeMappingsForCoder:]
47  0x10291ff0  Release 30  UIKit   +[UIProxyObject removeMappingsForCoder:]
48  0x10291ff0  Release 29  UIKit   -[UINibDecoder finishDecoding]
49  0x10291ff0  Release 28  UIKit   -[UINibDecoder finishDecoding]
50  0x10291ff0  Release 27  UIKit   -[UINibDecoder finishDecoding]
51  0x10291ff0  Release 26  UIKit   -[UINibDecoder finishDecoding]
52  0x10291ff0  Release 25  UIKit   -[UINibDecoder finishDecoding]
53  0x10291ff0  Release 24  UIKit   -[UINibDecoder finishDecoding]
54  0x10291ff0  Release 23  UIKit   -[UIRuntimeConnection dealloc]
55  0x10291ff0  Release 22  UIKit   -[UIRuntimeConnection dealloc]
56  0x10291ff0  Release 21  UIKit   -[UIRuntimeConnection dealloc]
57  0x10291ff0  Release 20  UIKit   -[UIRuntimeConnection dealloc]
58  0x10291ff0  Release 19  UIKit   -[UIRuntimeConnection dealloc]
59  0x10291ff0  Release 18  UIKit   -[UIRuntimeConnection dealloc]
60  0x10291ff0  Release 17  UIKit   -[UIRuntimeConnection dealloc]
61  0x10291ff0  Release 16  UIKit   -[UIRuntimeConnection dealloc]
62  0x10291ff0  Release 15  UIKit   -[UIRuntimeConnection dealloc]
63  0x10291ff0  Release 14  UIKit   -[UIRuntimeConnection dealloc]
64  0x10291ff0  Release 13  UIKit   -[UIRuntimeConnection dealloc]
65  0x10291ff0  Release 12  UIKit   -[UIRuntimeConnection dealloc]
66  0x10291ff0  Release 11  UIKit   -[UIRuntimeConnection dealloc]
67  0x10291ff0  Release 10  UIKit   -[UIRuntimeConnection dealloc]
68  0x10291ff0  Release 9   UIKit   -[UIRuntimeConnection dealloc]
69  0x10291ff0  Release 8   UIKit   -[UIRuntimeConnection dealloc]
70  0x10291ff0  Release 7   UIKit   -[UIRuntimeConnection dealloc]
71  0x10291ff0  Release 6   UIKit   -[UIRuntimeConnection dealloc]
72  0x10291ff0  Release 5   Foundation  -[NSAutoreleasePool drain]
73  0x10291ff0  Retain  6   MyApp   -[SSPullToRefreshView initWithScrollView:delegate:]
74  0x10291ff0  Release 5   MyApp   -[SSPullToRefreshView initWithScrollView:delegate:]
75  0x10291ff0  Retain  6   UIKit   -[UIWindow _setRotatableClient:toOrientation:updateStatusBar:duration:force:isRotating:]
76  0x10291ff0  Retain  7   libsystem_sim_blocks.dylib  _Block_object_assign
77  0x10291ff0  Retain  8   libsystem_sim_blocks.dylib  _Block_object_assign
78  0x10291ff0  Release 7   Foundation  __NSFireDelayedPerform
79  0x10291ff0  Release 6   UIKit   -[UIStoryboardSegue dealloc]
80  0x10291ff0  Release 5   Foundation  __NSFireDelayedPerform
81  0x10291ff0  Release 4   UIKit   -[UIStoryboardScene dealloc]
82  0x10291ff0  Retain  5   UIKit   __91-[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]_block_invoke_0238
83  0x10291ff0  Release 4   UIKit   __destroy_helper_block_250
84  0x10291ff0  Release 3   MyApp   __destroy_helper_block_
85  0x10291ff0  Release 2   UIKit   -[UIWindowController transitionViewDidComplete:fromView:toView:removeFromView:]
86  0x10291ff0  Retain  3   UIKit   -[UIViewController _dismissViewControllerWithTransition:from:completion:]
87  0x10291ff0  Retain  4   UIKit   __91-[UIWindowController transition:fromViewController:toViewController:target:didEndSelector:]_block_invoke_0238
88  0x10291ff0  Retain  5   UIKit   -[UIViewController _didFinishDismissTransition]
89  0x10291ff0  Retain  6   UIKit   -[UIApplication _removeViewControllerForLockingStatusBarTintColor:]
90  0x10291ff0  Release 5   UIKit   -[UIApplication _removeViewControllerForLockingStatusBarTintColor:]
91  0x10291ff0  Release 4   UIKit   -[UIApplication _removeViewControllerForLockingStatusBarTintColor:]
92  0x10291ff0  Release 3   UIKit   -[UIViewController setChildModalViewController:]
93  0x10291ff0  Release 2   UIKit   -[UIViewController _didFinishDismissTransition]
94  0x10291ff0  Release 1   UIKit   -[UIWindowController transitionViewDidComplete:fromView:toView:removeFromView:]
95  0x10291ff0  Release 0   UIKit   -[UIViewController _dismissViewControllerWithTransition:from:completion:]
96  0x10291ff0  Zombie  -1  UIKit   -[UIScrollView(UIScrollViewInternal) _delegateScrollViewAnimationEnded]
--编辑--

以下是我如何使用AFNetworking检索应用程序每个页面上的数据:

[[APIClient sharedClient] getPath:request
                            parameters:params
                               success:^(AFHTTPRequestOperation *operation, id responseObject) {
                                   [SVProgressHUD dismiss];
                                   [self.pullToRefreshView finishLoading];

                                   ... read data ...                                       

                               } failure:^(AFHTTPRequestOperation *operation, NSError *error) {
                                   [SVProgressHUD showErrorWithStatus:error.localizedDescription];
                               }];
没有will/didUnload方法,只有以下方法:

- (void)viewWillDisappear:(BOOL)animated{
    [SVProgressHUD dismiss];
    [_pubnub unsubscribeFromChannel: self.pro.channel];
}

您是否可以从自定义视图控制器发布一些代码,如dealoc和viewDidUnload:您的代码是否正在执行“respondsToSelector”?如果是的话,你能展示一下这个片段吗?而且,AFN网络是否有任何异步执行?您是否在任何地方使用块?有完全相同的问题。将您自己的dealloc方法添加到该viewController并向其添加断点。从您的问题中我们可以看到,您在该块中引用了
self
,这将导致它被保留。看起来很奇怪,你的症状似乎在完成请求的过程中没有得到保留。@rohan patel链接中的代码片段推动带有动画的视图控制器,然后立即释放它。这似乎是在招惹麻烦。我怀疑VC会一直被引用,直到annimation结束,而你的发布会在那一刻之前执行。(你可以在没有动画的情况下测试这个理论。如果你真的想使用动画,你可以设置一个完成块,在安全的情况下释放VC)。
- (void)viewWillDisappear:(BOOL)animated{
    [SVProgressHUD dismiss];
    [_pubnub unsubscribeFromChannel: self.pro.channel];
}