3

質問を読んで回答を当てはめようとして 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];
}
4

0 に答える 0