2017-04-15 7 views

Antwort

0

ich oben endete einen kleinen Javascript-Code injizieren das Ergebnis typeof

[context evaluateScript:@"function is(obj){ return typeof obj }"]; 
JSValue *is = [[context globalObject] valueForProperty:@"is"]; 
JSValue *type = [is callWithArguments:@[ is ]]; 
zurückzukehren
0

Sieht so aus, als ob es keine Möglichkeit gibt, das zu überprüfen. Sie können nur überprüfen, ob Ihre Funktion ein Objekt ist (und in JS-Funktionen sind Objekte).

Laut Dokumentation gibt -[JSValue callWithArguments:]nil zurück, wenn der Wert nicht als JavaScript-Funktion behandelt werden kann. Wenn eine JS-Funktion keinen Wert explizit zurückgibt, gibt sie implizit den JavaScript-Wert undefined zurück. Es sieht so aus, als könnten Sie einfach versuchen, die JS-Funktion aufzurufen und den Fall zu behandeln, wenn nil zurückgegeben wird.

Verwandte Themen