以防止“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