gpt4 book ai didi

iOS 8 只有内存泄漏与 UIAlertController 或 UIActionSheet

转载 作者:技术小花猫 更新时间:2023-10-29 11:20:49 28 4
gpt4 key购买 nike

当我使用 UIActionSheet 或 UIAlertController 执行以下操作时,我在模拟器中的 iOS 8 中看到内存泄漏。 UIActionSheet 在 IOS 8 中使用 UIAlertController,因此问题是相关的。

按下按钮时调用 showCameraAction。我已经从委托(delegate)方法中删除了所有内容,但仍然会在下面显示的情况下泄漏。我是否以某种不应该的方式使用了 UIActionSheet?对于解决此问题的任何帮助,我将不胜感激。相同的代码在 IOS 7 中没有泄漏(在模拟器中)。

-(IBAction)showCameraAction:(id)sender
{

UIActionSheet* actionSheet = [[UIActionSheet alloc] initWithTitle:@"Photo From:"
delegate:self
cancelButtonTitle:@"Cancel"
destructiveButtonTitle:nil
otherButtonTitles:@"Phone", @"Flickr", nil];

[actionSheet showInView:[[UIApplication sharedApplication] keyWindow]];
//also tried just showInView: self.view
}

//空的

 - (void)actionSheet:(UIActionSheet *)actionSheet
clickedButtonAtIndex:(NSInteger)buttonIndex {
}

也尝试了 UIAlertController,结果相同:

UIAlertController *alertController = [UIAlertController
alertControllerWithTitle:@"Photo From:"
message:@""
preferredStyle:UIAlertControllerStyleActionSheet];
UIAlertAction *phoneAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"Phone", @"Phone action")
style:UIAlertActionStyleCancel
handler:^(UIAlertAction *action)
{
NSLog(@"Phone action");
}];

UIAlertAction *flickrAction = [UIAlertAction
actionWithTitle:NSLocalizedString(@"Flickr", @"Flickr action")
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action)
{
NSLog(@"Flickr action");
}];

[alertController addAction:phoneAction];
[alertController addAction:flickrAction];


[self presentViewController:alertController animated:YES completion:nil];

Leaks tool screenshot

带痕迹的截图:https://www.dropbox.com/l/FmnTCd0PvVhuu16BVHZo7p

最佳答案

我建议在 iOS8 中使用“UIAlertController”。 并从呈现的 Controller 中关闭 alertController 对象, 同时通过“UIAlertAction” block 触发任何事件。

UIAlertController  *alertController = [UIAlertController alertControllerWithTitle:@"title"
message:@"message"
preferredStyle:UIAlertControllerStyleAlert];

UIAlertAction *alertAction = [UIAlertAction actionWithTitle:@"actionTitle"
style:UIAlertActionStyleDefault
handler:^(UIAlertAction *action) {
//Do ur stuff
[alertController dismissViewControllerAnimated:YES
completion:NULL];
}];
[alertController addAction:alertAction];
[self presentViewController:alertController
animated:YES
completion:NULL];

关于iOS 8 只有内存泄漏与 UIAlertController 或 UIActionSheet,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247221/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com