2013-03-13 116 views
3

经过一天以上阅读问题并尝试应用答案,我必须要求更多的帮助。发送到释放实例的消息

我的ios6应用程序在主屏幕上有一个表格视图。选择一个小区后,我们访问视图控制器,它有一个自定义的“后退”按钮调用此方法的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 

显然,这是内存的问题。这就是为什么我试图追踪“僵尸”。剖析我的应用程序,我收到了这份报告。它表明释放太多了,但我不知道哪一个是罪魁祸首。

有谁知道如何解释此报告?

这条线是否正常?

84 0x10291ff0 Release 3 MyApp __destroy_helper_block_ 

如果需要任何进一步的信息,请告诉我。我感谢你的帮助。

# 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]; 
           }]; 

没有意志/ didUnload方法,只此一家:

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

您可以从发布的dealloc一样和viewDidUnload您的自定义视图控制器的一些代码: – nkongara 2013-03-13 18:37:11

+0

是您的代码执行“respondsToSelector”?如果是这样,你可以显示该片段吗?而且,AFNetworking是否存在异步执行?你在任何地方使用块? – jbbenni 2013-03-13 18:44:26

+0

*有完全相同的问题。* – 2013-03-13 18:55:44

回答

0

我认为这是因为AFNetworking委托方法。 您可能会使用AFNetworking委托方法从后端获取内容。 当您的CustomViewController发布时,您可以清除它的委托。 因此,请将以下代码捕捉添加到您的CustomViewContoller的dealloc方法中。

- (void)dealloc 
{ 
    ... 
    networkingInstance.delegate = nil; 
    [super dealloc]; 
} 
+0

我同意这个问题可能来自API调用。我添加了用于在应用程序的每个屏幕上检索数据的代码。 – Nanego 2013-03-13 19:00:50

+0

我的sharedClient扩展了AFHTTPClient。我不知道如何清除它的代表...但也许我应该找到一种方法告诉他目前的请求必须关闭。 – Nanego 2013-03-13 19:11:23

+0

请确定您将此CustomViewController实例设置为委托或类似sharedClient的位置。 – Pei 2013-03-13 19:19:53

相关问题