键盘扩展内存泄漏?

Wil*_*ich 8 keyboard xcode memory-leaks ios

我正在构建一个自定义键盘扩展(iOS 9+),并发现了一个令人烦恼的内存泄漏.

当离开应用程序(在此测试用例中为Messages应用程序)然后返回时,会发生此泄漏.通常(见下面Xcode的Instruments7的照片)

我确实没有对模板做任何事情,但收到了这个漏洞.有没有人对如何解决这个问题有任何建议?...

UPDATE

为了好玩,这里的辉煌泄露的屏幕截图... 第一我复杂的VC的片段....

这是在点击文本字段,关闭控制器,然后再次点击该字段之后

(显示 - >隐藏 - >显示)

#import "KeyboardViewController.h"

@implementation KeyboardViewController 

- (void)viewDidLoad {

    [super viewDidLoad];

}

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

}

@end
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

Wil*_*ich 2

尽管我很想将赏金授予一个解决方案,但不是我收到的唯一答案......这个问题的答案实际上最终是“哎呀,我没有做错任何事......”。

在深入研究了导致这些泄漏的真正原因之后(在删除了除视图控制器实例之外的所有内容后,总共发生了 14 次泄漏),我发现了真正的罪魁祸首。

苹果


即使我删除所有代码,实际上只留下以下内容

- (void)viewDidLoad {

    [super viewDidLoad];

    // Great...

}

- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    // Super!

}
Run Code Online (Sandbox Code Playgroud)

...我仍然收到14 个泄漏,所有这些都源于UIKitFoundationCoreFoundation。基本上,如果我从流程中删除任何其他内容,就不会有流程,因为什么也不会发生。谁知道呢...也许泄漏仍然存在..

不过,值得庆幸的是,这种泄漏不会破坏内存分配,除非您打算连续几年键入消息。它似乎也没有因为我的代码中的其他任何内容而恶化,所以除了它是一个非常丑陋的错误之外,我的结论是它还可以。

谢谢苹果!