最近、私は最初のIphoneアプリを完成させ、それはすりおろして動作します....しばらくして漏れがなく、楽器を使って漏れを見つけるために激しいセッションを行ったときを除いて、突然約1.3Kbの価値があります。スタックトレースでは、UIViewControlerをナビゲーションコントローラーにプッシュした後にリリースした正確な行をすべて指し示しています(このコードをもう少し下に投稿します)。リークは、ViewControlersをナビゲートして再び戻った後、発生するようです。これは非常に一般的な質問ですが、誰かが私を正しい方向に向けてくれることを願っています。私はこれを解決するために数日を費やしました、そしてそれは私を夢中にさせ始めています!
私のアプリはナビゲーションベースのアプリです。簡単に言うと、次のように機能します。
UIViewControlerで始まり、ボタンが押されると、TableViewを含む別のUIViewControlerに移動します。ここから、TableViewに入力する配列の内容に応じて、PickerViewを含むUIViewControlerに移動し、次に最後のUIViewControlerに移動するか、PickerViewを含むUIViewControlerをバイパスして最後のUIViewControlerに直接移動します。
スタックトレースがリークが発生していることを示すコードは次のとおりです。
SoundConfiger *third = [[SoundConfiger alloc] initWithNibName:@"SoundConfiger" bundle:[NSBundle mainBundle]];
[third setTitle:@"Sound Link"];
third.myData = myData;
third.selectedRow = row;
third.currentChoise = nil;
[self.navigationController pushViewController:third animated:YES];
[third release]; <---- Instruments says the leak is here on this line.
NavigationControllerがこのUIViewcontrolerを担当するべきではありませんか?私は他のどこにもretainを呼び出しておらず、この関数にのみ存在します。
UIkitとQuartsZoneからたくさんのリークがあります。いくつかのスクリーンショットを以下に示します。スタックトレースでは、トレースのある時点で上記と同じオブジェクト内の同じコードの同じスニペットをすべて指し示しています。
まだ画像を投稿できないため、画像へのリンクは次のとおりです。リンクは無効になりました
これは、リストの最初のGeneralBlock-16からの完全なスタックトレースです。太字(29行目)は上記のコードスニペットです。
0 libSystem.B.dylib malloc
1 CoreFoundation-[__ NSArrayM insertObject:atIndex:]
2 CoreFoundation-[__ NSArrayM addObject:]
3 UIKit-[UIView(UIViewGestures)addGestureRecognizer:]
4 UIKit-[UISwitch _commonInit]
5 UIKit-[UISwitch initWithCoder:]
6 UIKit UINibDecoderDecodeObjectForValue
7 UIKit UINibDecoderDecodeObjectForValue
8 UIKit-[UINibDecoder decodeObjectForKey:]
9 UIKit-[UIView initWithCoder:]
10 UIKit UINibDecoderDecodeObjectForValue
11 UIKit-[UINibDecoder decodeObjectForKey:]
12 UIKit-[UIRuntimeConnection initWithCoder:]
13 UIKit UINibDecoderDecodeObjectForValue
14 UIKit UINibDecoderDecodeObjectForValue
15 UIKit-[UINibDecoder decodeObjectForKey:]
16 UIKit-[UINib instanceiateWithOwner:options:]
17 UIKit-[NSBundle(UINSBundleAdditions)loadNibNamed:owner:options:]
18 UIKit-[UIViewController _loadViewFromNibNamed:bundle:]
19 UIKit-[UIViewController loadView]
20UIKit-[UIViewControllerビュー]
21 UIKit-[UIViewController contentScrollView]
22 UIKit-[UINavigationController _computeAndApplyScrollContentInsetDeltaForViewController:]
23 UIKit-[UINavigationController _layoutViewController:]
24 UIKit-[UINavigationController _startTransition:fromViewController:toViewController:]
25 UIKit-[UINavigationController _startDeferredTransitionIfNeeded]
26 UIKit-[UINavigationController pushViewController:transition:forceImmediate:]
27 UIKit 0x6ea9b5
28 UIKit-[UINavigationController pushViewController:animated:]
29ブービートラップ-[SelectEventTypeviewcontrolerChooseThisOne]/Users/chriswyllie/Documents/Booby Trap / Booby Trap / Classes / SelectEventTypeviewcontroler.m:91
30 CoreFoundation-[NSObject(NSObject)performSelector:withObject:withObject:]
31 UIKit-[UIApplication sendAction:to:from:forEvent:]
32 UIKit-[UIApplication sendAction:toTarget:fromSender:forEvent:]
33 UIKit-[UIControl sendAction:to:forEvent:]
34 UIKit-[UIControl(Internal)_sendActionsForEvents:withEvent:]
35 UIKit-[UIControl touchesEnded:withEvent:]
36 UIKit-[UIWindow _sendTouchesForEvent:]
37 UIKit-[UIWindow sendEvent:]
38 UIKit-[UIApplication sendEvent:]
39 UIKit _UIApplicationHandleEvent
40 GraphicsServices PurpleEventCallback
41 CoreFoundation CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION
42 CoreFoundation __CFRunLoopDoSource1
43 CoreFoundation __CFRunLoopRun
44 CoreFoundation CFRunLoopRunSpecific
45 CoreFoundation CFRunLoopRunInMode
46 GraphicsServices GSEventRunModal
47 GraphicsServices GSEventRun
48 UIKit-[UIApplication _run]
49 UIKit UIApplicationMain
50ブービートラップメイン/Users/chriswyllie/Documents/ブービートラップ/ブービートラップ/main.m:14
51ブービートラップ開始
よろしくお願いします。ばかげたことをしているだけで、それを見るには新鮮な目が必要です。さらに情報が必要な場合はお知らせください。