1

我正在尝试在 MonoTouch 中使用 UIActivityViewController。你可以在下面看到代码。我的问题是代码泄漏(根据monotouch内存分析器)并且由于每次显示视图控制器时加载的图像而使用了大量内存。我试图实施解决方案:

NSArray* excludeActivities 即使在使用 ARC 并将其设置为 nil 时也会泄漏内存

如何修复 UIPopoverController 中呈现的 UIActivityViewController 的内存泄漏

并在完成处理程序中处理活动视图控制器和图像,但我总是遇到同样的问题。有人遇到同样的问题并找到解决方案?

void OnButtonClicked(object sender, EventArgs e)
{
  UIImage image = UIImage.FromFile("imagePath");

  NSObject[] activityItems = new NSObject[] {
    new NSString("text"),
    image
  };

  UIActivityViewController activityController = new UIActivityViewController(activityItems, null);
  activityController.ExcludedActivityTypes = new NSString[] {UIActivityType.Message};
  activityController.CompletionHandler = (activityType, completed) =>
  {
    activityController.ExcludedActivityTypes = null;
    activityController.Dispose();
    activityController = null;

    image.Dispose(); 
    image = null;
  };
  this.NavigationController.PresentViewController(activityController, true, () => {});
}
4

0 回答 0