我在我的应用程序中使用Aviary SDK 3.0,我将Aviary代码放在这样的popover中,但是在我使用[popover dismissPopoverAnimated]解除了popover之后,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
答案 0 :(得分:0)
来自文档:
“请注意,建议不要将控制器推到UINavigationController的堆栈上,因为Photo Editor本身使用的是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];
答案 1 :(得分:0)
此后续版本的SDK已解决此内存泄漏问题。请访问developers.aviary.com以获取最新版本。