iOS键盘扩展中的presentViewController导致内存泄漏

时间:2015-05-16 17:36:16

标签: ios objective-c cocoa-touch memory-leaks

我正在Objective-C中为iOS编写一个键盘扩展。在viewController1中的某一点,我通过

呈现另一个View Controller
CustomViewController *viewController2 = [[CustomViewController alloc] init];
[self presentViewController:viewController2 animated:NO completion:nil];

在以下情形中出现问题:另一个应用程序已打开,我的扩展名为活动键盘。正在显示viewController2并退出扩展程序(按主页按钮)。重新启动应用后,viewController2不再显示,但viewController1是。{1}}。从内存消耗中我可以看到viewController2仍在内存中。由于内存消耗过多,重复本段中的步骤很快就会导致崩溃。

viewController2中执行普通用户操作后,不会发生这种情况,

[self dismissViewControllerAnimated:NO completion:nil];

被调用。此外,我100%确定没有强引用可能导致内存泄漏。我还尝试在(viewWillDisappear等)拨打dismissViewControllerAnimated:NO时收到一条消息,但似乎按下主页按钮会立即杀死该扩展程序。

viewController1UIInputViewController并且充当CLLocationManagerUICollectionView的委托,viewController2UIViewController而不是viewController1充当代表。我不保留viewController2viewController2的任何引用,以及从viewController1@property (weak, nonatomic) viewController1 *parent; 的弱引用。

var flatten = require('flat')

flatten({
    name : {
        firstName : "Damian"
    }
})

// { 
//   'name.firstName': 'Damian'
// } 

有没有人知道发生了什么?我该怎么做才能防止这种情况发生?

非常感谢你的帮助!

0 个答案:

没有答案