我正在尝试在 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, () => {});
}