![](/img/trans.png)
[英]UIPopoverController memory not getting released after dismiss with ARC
[英]Aviary ios SDK memory not released after dismiss
我在應用程序中使用Aviary SDK 3.0,將Aviary代碼放在這樣的彈出窗口中,但是在使用[popover dismissPopoverAnimated]刪除了彈出窗口之后,Aviary仍然在內存堆中,即使在我之后解雇了父viewcontroller。 我被解雇后,預期會清理鳥舍代碼嗎?
在使用時的動作中,點擊照片。 我在這里展示
AFPhotoEditorController *editorController = [[AFPhotoEditorController alloc] initWithImage:imageToEdit];
[editorController setDelegate:self];
if (popover == nil)
popover = [[UIPopoverController alloc] initWithContentViewController:editorController];
else
[popover setContentViewController:editorController animated:YES];
https://dl.dropboxusercontent.com/u/23238574/Screenshots/aviarypopover.png
從文檔:
“請注意,不建議將控制器推入UINavigationController的堆棧,因為照片編輯器本身使用UINavigationController的子類。”
嘗試以模態展示它,然后為了使我對所有被清除的內存感覺更好,我要做的就是制作一個堅固的屬性並通過清單
[editorController removeFromParentViewController];
editorController.delegate = nil;
editorController = nil;
盡管我認為不需要,但有關清除代表的一些內容似乎可以更好地清除我的記憶。
另外,不要忘記:
“默認情況下,Aviary會保留少量的OpenGL對象,以優化Aviary產品的啟動。”
[AFOpenGLManager requestOpenGLDataPurge];
// to request a clear,
// "Calls to requestOpenGLDataPurge only apply to the currently loaded OpenGL data,"
您可以將其設置為定期清除
[AFPhotoEditorCustomization purgeGPUMemoryWhenPossible:YES];
如果您正在執行此操作,則最好預先加載一些編輯器(如果您知道他們很快就會使用它)
[AFOpenGLManager beginOpenGLLoad];
此內存泄漏已在以后的SDK版本中解決。 請訪問developers.aviary.com以獲取最新版本。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.