Quindi in pratica sto implementando il modo tipico di gestire le chiamate JavaScript in objc usando window.location = "myobj: mymethod: myarg: myotherarg", tuttavia, mi chiedo se c'è un modo per applicare una serie di argomenti a un metodo, simile a come è possibile in JavaScript.È possibile applicare JavaScript come metodo nell'obiettivo-c?
In genere ho fatto
-(void) mymethod:(NSArray*) arr{
//method knows how many arguments it takes and what they mean at each index
}
preferirei fare:
-(void) mymethod:(NSString*) myarg myOtherArg: (NSString*) myotherarg{
//do stuff
}
e hanno un metodo come questo:
+(void) callMethod:(NSString*)selectorName withArgs: (NSArray*)args onObject:(id) obj{
//implementation
}
[JEHelpers callMethod:selector withArgs:someArrayOfArgs onObject:myapp]
è possibile?
Sì ... ma il punto è essere in grado di applicare un insieme dinamico di argomenti a un metodo, allo stesso modo della funzione JS apply, per creare un ponte molto pulito tra le chiamate della funzione JS di WebView all'Obiettivo nativo- Metodi C Quindi fondamentalmente potrei avere un'altra classe Objective-C chiamata JSFunctionMethods, che rispecchierebbe l'API delle chiamate JS nella mia API JS che implemento nella mia webview. Grazie per il tuo contributo, e spero di aver chiarito meglio. –
@Jesse L'ho appena postato mentre ricordo come usare 'NSInvocation'.Vedi la mia aggiunta (o la risposta di @ Andrew). – ughoavgfhw
Oh, è fantastico! Grazie! –