Я хочу получить доступ к свойствам и методам вызова объекта Objective-C, который был возвращен хосту JavaScript как свойство открытого объекта ([windowScriptObject setValue:self forKey:@"a"]
):
- (id) valueForUndefinedKey:(NSString*) key {
if ( [key isEqualToString:@"b"] ) {
MyObject* obj = [ [ MyObject alloc ] init ];
return obj;
}
return Nil;
}
В Javascript я хочу иметь возможность сделать следующее:
// a is already exposed Objective-C object
var b = a.b; // reference to myObject
var c = a.b.c; // myObject.c
var d = a.b.d(); // [ myObject d ]
MyObject
необходимо реализовать +isSelectorExcludedFromWebScript:
и/или +isKeyExcludedFromWebScript:
. По умолчанию Javascript не имеет доступа к Objective-C методам; вы должны явно разрешить это.
Вы видите какой-то другой симптом за этим?
Для получения дополнительной информации см. Использование Objective-C От Javascript.
Using Objective-C From Javascript
. Я хочу пойти дальше и вернуть (сделать доступным черезabc
) другой объект Objective-C на хост JavaScript.