我想要访问 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 方法;您必须明确允许。
除此之外,您还发现其他症状吗?
有关详细信息,请参阅Using Objective-C From Javascript .
关于javascript - 从 JavaScript 访问任意 Objective-C 对象的方法和属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1373496/