L'única forma per despistar l'enllaçat dinàmic és obtindre l'adreça de'un mètode i cridar-lo directament com si fos una funció. Això podria ser apropiat en rares ocasions quan un mètode en particular s'executarà molts cops de forma consecutiva i vols saltar-se la missatgeria cada cop que és mètode s'executa.
Amb un mètode definit en una classe NSObject, methodForSelector:, pots preguntar per un punter a un procediment que implementa un mètode, llavors utilitzes el punter per cridar al procediment. S'ha d'anar amb compte amb el punter que retorna methodForSelector: sigui com el tipus de la funció. Tant el tipus de retorn com el tipus d'argument ha d'estar incluit en la crida.
El següent exemple mostra com el procediment que implement el mètode posaPle: podria cridar-se:
void (*setter)(id, SEL, BOOL);
int i;
setter = (void (*)(id, SEL, BOOL(([target methodForSelector:@selector(posaPle)];
for ( i = 0; i < 1000, i++ )
setter(targetList[i], @selectr(posaPle:), YES);
Els primers dos arguments passats al procediment són l'objecte (self) i el selecto de mètode (_cmd). Aquests arguments estan amagats en la sintaxi del mètode però ha de fer-se explícit quan el mètode és cridat com a funció.
Utitlitzant methodForSelector: per esquivar l'enllaçat dinàmic estalvia molt del temps requerit per la missatgeria. Tanmateix, l'estalvi només serà significant quan un missatge en particular es repeteixi molts cops, com en el bucle for mostrat anteriorment.
Fixeu-vos que methodForSelector: està proporcionat pel sistema d'execució de Cocoa; aquest no és una característica pròpia del llenguatge Objective-C.