これで苦労してきました、誰かが助けてくれることを願っています!投稿は初めてですが、これが私のアプリを介して私を助けるための私の頼りになるサイトであることがわかりました。
CGImageを取得し、writeImageToSavedPhotosAlbum:orientation:completionBlock:を使用してフォトライブラリにコピーするアプリがあります。機能的にはうまく機能しますが、Instrumentsは私にリークがあると言っているようです。試行錯誤とコードのコメントを通じて、この特定の行がリークを引き起こしていることがわかりました。
[library writeImageToSavedPhotosAlbum:myCGImage
orientation:assetOrientation
completionBlock:^(NSURL *assetURL, NSError *error){
NSLog(@"image copied to album");
}];
その線は私には無害に見えるので、なぜそれが問題を引き起こしているのか本当にわかりません。コメントアウト、リークなし。そのままにしておくと、漏れが見えます!
インストルメントがリークブロックに表示する内容は次のとおりです。
Leaked Object # Address Size Responsible Library Responsible Frame
GeneralBlock-36864, 0x8c77000 36.00 KB MusicLibrary MemNewPtrClear
これがInstrumentsのスタックトレースです。これは、実際にフォトライブラリに関連していることを示しているようです。
0 libsystem_c.dylib calloc
1 MusicLibrary MemNewPtrClear
2 MusicLibrary ReadITImageDB
3 MusicLibrary -[MLPhotoLibrary _loadImageLibrary]
4 MusicLibrary -[MLPhotoLibrary albums]
5 PhotoLibrary -[PLPhotoLibrary albums]
6 PhotoLibrary -[PLPhotoLibrary eventAlbumContainingPhoto:]
7 PhotoLibrary -[PLPhotoLibrary pictureWasTakenOrChanged]
8 PhotoLibrary __-[PLAssetsSaver queueJobData:requestEnqueuedBlock:completionBlock:imagePort:previewImagePort:]_block_invoke_2
9 libdispatch.dylib _dispatch_call_block_and_release
10 libdispatch.dylib _dispatch_main_queue_callback_4CF$VARIANT$up
11 CoreFoundation __CFRunLoopRun
12 CoreFoundation CFRunLoopRunSpecific
13 CoreFoundation CFRunLoopRunInMode
14 GraphicsServices GSEventRunModal
15 GraphicsServices GSEventRun
16 UIKit -[UIApplication _run]
17 UIKit UIApplicationMain
18 mogofoto main /Users/Jutsu/Documents/mogofoto2/main.m:14
19 mogofoto start
私は後でmyCGIImageをリリースし、ライブラリもリリースします。assetOrientationは単にALAssetOrientationです。カスタムコードは他にないので、困惑しています!(問題が発生する可能性がある場合は、これを囲む他のコード行を投稿できれば幸いです)。
どんな助けでも大歓迎です!!!