質問を読んで回答を当てはめようとして 1 日以上経った後、私はさらに助けを求めなければなりません。
私の 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
明らかに、それはメモリの問題です。というわけで「Zombies」を追跡してみました。アプリをプロファイリングすると、このレポートが表示されます。リリースが多すぎることを示していますが、どちらが原因かはわかりません。
このレポートの解釈方法を知っている人はいますか?
この線は正常ですか?
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];
}];
will/didUnload メソッドはなく、次の 1 つだけです。
- (void)viewWillDisappear:(BOOL)animated{
[SVProgressHUD dismiss];
[_pubnub unsubscribeFromChannel: self.pro.channel];
}