1

我在我的应用程序中使用 Aviary SDK 3.0,我将 Aviary 代码放在这样的弹出窗口中,但是在我使用 [popover dismissPopoverAnimated] 关闭弹出窗口后,Aviary 仍然在内存堆中,这甚至是真的,即使在我解雇了父视图控制器。是否预计在我解雇后清理 Aviary 代码?

在使用时点击照片的动作。我在这里介绍

    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在此处输入图像描述

4

2 回答 2

0

从文档:

“请注意,不建议将控制器推入 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];
于 2013-08-01T02:41:48.400 回答
0

此内存泄漏已在 SDK 的后续版本中得到解决。请访问developers.aviary.com以获取最新版本。

于 2014-11-03T21:06:37.157 回答