我正在Objective-C中为iOS编写一个键盘扩展。 viewController1某一点,我呈现了另一个View Controller by

CustomViewController *viewController2 = [[CustomViewController alloc] init];
[self presentViewController:viewController2 animated:NO completion:nil];

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

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

[self dismissViewControllerAnimated:NO completion:nil];

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

viewController1是一个UIInputViewController ,充当CLLocationManagerUICollectionViewviewController2是一个UIViewController ,根本不作为委托。 我不保留任何参考viewController1viewController2 ,并从一个很脆弱的viewController2viewController1

@property (weak, nonatomic) viewController1 *parent;

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

非常感谢你的帮助!

  ask by fat32 translate from so

本文未有回复,本站智能推荐: