Подтвердить что ты не робот

Для предотвращения предупреждения "PerformSelect может вызвать утечку, потому что его селектор неизвестен"

Возможный дубликат:
performSelector может вызвать утечку, потому что его селектор неизвестен

Я сделал NSDictionary для преобразования моего ввода (NSString) в селектор. "Селекторная карта" выглядит следующим образом:

[self setCmdSelectorMap:[NSDictionary dictionaryWithObjectsAndKeys: 
                         [NSValue valueWithPointer:@selector(doOpenBrowserByString:)], @"openBrowser",
                         [NSValue valueWithPointer:@selector(syncData:)], @"sync",
                         [NSValue valueWithPointer:@selector(getCachedString:)], @"getCachedString",
                         nil]];

Когда я пытаюсь извлечь один из этих селекторов и выполнить его следующим образом, это вызовет предупреждение:

sel = [[_cmdMap objectForKey:command] pointerValue];
NSLog(@"selector determined : %@", NSStringFromSelector(sel));
[self performSelector:sel withObject:arguments];

Предупреждение говорит: PerformSelector может вызвать утечку, потому что его селектор неизвестен. Есть ли способ предотвратить это предупреждение? или существует ли "безопасный" способ выполнения такого действия?

Спасибо, ребята:)

4b9b3361

Ответ 1

Просто используйте это:

#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Warc-performSelector-leaks"
[self performSelector:sel withObject:arguments];
#pragma clang diagnostic pop