我知道有些內存泄漏沒有什麼大不了,或者不在開發人員的控制範圍之內,因爲它們在sdk本身,但我看到的是iOS 4上的iOS版本爲32KB SDK 4.2。我還沒有能夠在3GS上觸發此功能。它發生在響應用戶交互(響應打開照片庫,並且泄漏似乎在我進入照片庫時發生),因此它可以快速建立起來。iPhone內存泄漏
這裏的堆棧跟蹤我看到的iPhone 4:
0 libSystem.B.dylib calloc
1 0x317e8363
2 0x317e9c41
3 0x318273ff
4 0x31827ea5
5 0x302ea49d
6 0x302ebe07
7 0x302eb7c3
8 0x302ebcab
9 0x303304cd
10 UIKit -[UINavigationController _startTransition:fromViewController:toViewController:]
11 UIKit -[UINavigationController _startDeferredTransitionIfNeeded]
12 UIKit -[UINavigationController viewWillLayoutSubviews]
13 UIKit -[UILayoutContainerView layoutSubviews]
14 UIKit -[UIView(CALayerDelegate) layoutSublayersOfLayer:]
15 CoreFoundation -[NSObject(NSObject) performSelector:withObject:]
16 QuartzCore -[CALayer layoutSublayers]
17 QuartzCore CALayerLayoutIfNeeded
18 QuartzCore CA::Context::commit_transaction(CA::Transaction*)
19 QuartzCore CA::Transaction::commit()
20 QuartzCore CA::Transaction::observer_callback(__CFRunLoopObserver*, unsigned long, void*)
21 CoreFoundation __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__
22 CoreFoundation __CFRunLoopDoObservers
23 CoreFoundation __CFRunLoopRun
24 CoreFoundation CFRunLoopRunSpecific
25 CoreFoundation CFRunLoopRunInMode
26 GraphicsServices GSEventRunModal
27 GraphicsServices GSEventRun
28 UIKit -[UIApplication _run]
29 UIKit UIApplicationMain
30 MyApp main /Users/david/src/MyApp/main.m:14
31 MyApp start
我沒有看到我的代碼的任何地方,並在這裏,我不知道該怎麼檢查與地址的符號是什麼。有任何想法嗎?這可能與我添加的子層有關嗎? (這是我在這裏看到的唯一可以控制的東西。)
感謝您的幫助。
編輯:古棧的問題,指出(謝謝你,古棧),我完全忘了提,這是表示文書起來:
Leaked Object # Address Size Responsible Library Responsible Frame
GeneralBlock-36864 0x4ff3000 36864 UIKit -[UINavigationController _startTransition:fromViewController:toViewController:]
你怎麼知道有內存泄漏?是在控制檯中出現的消息?你可以在你的問題中粘貼控制檯輸出嗎? – 2010-12-11 19:44:32