以防止“PerformSelect可能导致泄漏,因为其select器是未知的”警告
可能重复:
performSelector可能会导致泄漏,因为它的select器是未知的
我做了一个NSDictionary将我的input(NSString)转换为select器。 “select器映射”如下所示:
[self setCmdSelectorMap:[NSDictionary dictionaryWithObjectsAndKeys: [NSValue valueWithPointer:@selector(doOpenBrowserByString:)], @"openBrowser", [NSValue valueWithPointer:@selector(syncData:)], @"sync", [NSValue valueWithPointer:@selector(getCachedString:)], @"getCachedString", nil]];
当我尝试获取这些select器中的一个并按照如下执行时,会引起警告:
sel = [[_cmdMap objectForKey:command] pointerValue]; NSLog(@"selector determined : %@", NSStringFromSelector(sel)); [self performSelector:sel withObject:arguments];
警告说:执行select器可能会导致泄漏,因为它的select器是未知的。 有什么办法可以防止这个警告的发生? 还是有什么“安全”的方式来执行这样的行动?
多谢你们 :)
只需使用这个:
#pragma clang diagnostic push #pragma clang diagnostic ignored "-Warc-performSelector-leaks" [self performSelector:sel withObject:arguments]; #pragma clang diagnostic pop
- 如何以编程方式创build的uibutton以编程方式显示popover(不使用界面生成器)
- 从详细视图控制器返回时,SideBar菜单不工作
- 从iOS上传多个图像到S3的高效方法
- 具有UIView透明度的GPUImagevideo
- Xamarin.Forms ZXing.Net.Mobile在iOS 10上扫描结果后丢失当前页面
- UITapGestureRecognizer – 让它在接触下工作,而不是接触?
- NSString cString已弃用。 有什么select?
- tableView didSelectRowAtIndexPath在iOS 7上无法正常工作。为什么?
- 在UITableViewCell中自动增加/减少UILabelView高度?