我想访问属性并调用作为公开对象([windowScriptObject setValue:self forKey:@"a"]
)的属性返回给JavaScript主机的Objective-C对象的方法:
- (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 ]
答案 0 :(得分:1)
MyObject
需要实施+isSelectorExcludedFromWebScript:
和/或+isKeyExcludedFromWebScript:
。默认情况下,不允许Javascript访问Objective-C方法;你必须明确允许它。
您是否看到了其他症状?
有关详细信息,请参阅Using Objective-C From Javascript。