我正在Objective-C中为iOS编写一个键盘扩展。在viewController1
中的某一点,我通过
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
时收到一条消息,但似乎按下主页按钮会立即杀死该扩展程序。
viewController1
是UIInputViewController
并且充当CLLocationManager
和UICollectionView
的委托,viewController2
是UIViewController
而不是viewController1
充当代表。我不保留viewController2
到viewController2
的任何引用,以及从viewController1
到@property (weak, nonatomic) viewController1 *parent;
的弱引用。
var flatten = require('flat')
flatten({
name : {
firstName : "Damian"
}
})
// {
// 'name.firstName': 'Damian'
// }
有没有人知道发生了什么?我该怎么做才能防止这种情况发生?
非常感谢你的帮助!