Questa domanda è orientata per la compatibilità della versione iOS.controllare se esiste una funzione in stile C di tipo "MyMethodName()"?
So come verificare se esiste una funzione se si tratta di un tipico metodo in stile Objective-C che utilizza respondsToSelector. vale a dire per un metodo come:
- (void) someMethod:(NSInteger)someParameter;
È possibile utilizzare:
if ([self respondsToSelector:@selector(someMethod:someParameter)]) {
//do something
}
Ma per quanto riguarda le funzioni in stile C? Come posso verificare se esiste una funzione che assomiglia a:
void CStyleFunctionName(FoundationTypeRef parameter);
Grazie!
Questo non è un metodo, è una funzione. Possibile duplicato di [Come verificare se la funzione esiste in C/C++] (http://stackoverflow.com/questions/8814705/how-to-check-if-the-function-exists-in-cc) Vedi anche: [Posso ridefinire una funzione o controllare se esiste?] (Http://stackoverflow.com/questions/6916772/can-i-refine-a-function-or-eck-if-it-exists) –
Tu può fare 'if (CStyleMethodName! = NULL) {...}' per vedere se il simbolo è definito. Ad esempio, è quello che vuoi fare se vuoi essere compatibile con le versioni precedenti di iOS. –
@FabianKreiser che funziona solo se il collegamento debole è supportato. –