After more than one day reading questions and trying to apply answers, I must ask more help.
My ios6 app has a table view on the main screen. After selecting a cell, we access a view controller with a UINavigationBar which has a custom "Back" button calling this method :
- (IBAction)goback:(id)sender {
[SVProgressHUD dismiss];
if(self.presentingViewController) {
NSLog(@" Dismissing View Controller: %@.", self.presentingViewController);
[self dismissViewControllerAnimated:NO completion:nil];
}
}
Usually, this method works well. It only crashes if we press the Back button very quickly, just after the loading of the content (using json and AFNetworking). 5 seconds later, the back button is working fine, but if we click it right after the loading, we get this error :
[28103:c07] Dismissing View Controller: <UITabBarController: 0x7578170>.
[28103:c07] *** -[CustomViewController respondsToSelector:]: message sent to deallocated instance 0x1257cf70
Obviously, it's a memory problem. That's why I tried to track "Zombies". Profiling my app, I get this report. It shows that there is too much release, but I can't tell which one is the culprit.
Does anyone know how to interpret this report ?
Is this line normal ?
84 0x10291ff0 Release 3 MyApp __destroy_helper_block_
Please tell me if any further information is needed. I thank you for your help.
# 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]
-- edit --
Here is how I use AFNetworking to retrieve data on each page of my app :
[[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];
}];
There is no will/didUnload methods, only this one:
- (void)viewWillDisappear:(BOOL)animated{
[SVProgressHUD dismiss];
[_pubnub unsubscribeFromChannel: self.pro.channel];
}