键盘扩展内存泄漏?

时间:2017-12-15 18:47:18

标签: ios xcode memory-leaks keyboard

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

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

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

更新

为了好玩,这里有一个光荣的泄漏的屏幕截图...... AND 首先是我的复杂VC的片段......

这是在点击文本字段,解除控制器,然后再次点击该字段后

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

#import "KeyboardViewController.h"

@implementation KeyboardViewController 

- (void)viewDidLoad {

    [super viewDidLoad];

}

- (void)viewWillAppear:(BOOL)animated {

    [super viewWillAppear:animated];

}

@end

enter image description here

2 个答案:

答案 0 :(得分:2)

尽管我希望将赏金给予解决方案,而不是我收到的唯一答案......对此的答案真的最终成了“哎呀我没有做错什么......”。< / p>

在做了太深入的潜水调查真正导致这些泄漏的事情之后(除了视图控制器的实例之外真正删除了所有内容后总共14次),我发现了真正的罪魁祸首。 / strong>

  

<强>苹果

即使我删除了所有代码,也只留下以下内容

- (void)viewDidLoad {

    [super viewDidLoad];

    // Great...

}

- (void)viewDidAppear:(BOOL)animated {

    [super viewDidAppear:animated];

    // Super!

}

...我仍然得到 14次泄密,所有这些都来自UIKitFoundationCoreFoundation。基本上,如果我从流程中删除了其他任何内容,那么就没有进程,因为什么都不会发生。谁知道......也许那里的泄漏也会存在......

尽管如此,幸运的是,这个泄漏不会破坏内存分配,除非您打算直接输入消息几年。它在我的代码中似乎也没有从其他任何东西恶化,所以除了它是一个非常丑陋的bug之外,我的结论是它 A OK。

感谢Apple!

答案 1 :(得分:1)

我有时会发现Xcode Instruments标记的零星漏洞,但我对此无能为力,因为问题出在Apple的代码中,显然是你的情况。您唯一能做的就是提交错误报告并继续您的项目,特别是如果泄漏零星,并且只是几个字节的问题,不会及时累积。总之,如果这些条件适用,我不会过分担心它。