input(NSString)をセレクターに変換するためにNSDictionaryを実行しました。「セレクターマップ」は次のようになります。
[self setCmdSelectorMap:[NSDictionary dictionaryWithObjectsAndKeys:
[NSValue valueWithPointer:@selector(doOpenBrowserByString:)], @"openBrowser",
[NSValue valueWithPointer:@selector(syncData:)], @"sync",
[NSValue valueWithPointer:@selector(getCachedString:)], @"getCachedString",
nil]];
これらのセレクターの1つをフェッチして次のように実行しようとすると、警告が発生します。
sel = [[_cmdMap objectForKey:command] pointerValue];
NSLog(@"selector determined : %@", NSStringFromSelector(sel));
[self performSelector:sel withObject:arguments];
警告には次のように書かれています:PerformSelectorは、セレクターが不明なため、リークを引き起こす可能性があります。この警告の発生を防ぐ方法はありますか?または、そのようなアクションを実行するための「より安全な」方法はありますか?
みんなありがとう :)