2015-04-30 33 views
2

JavascriptCore允许我们通过JSExport协议将我们的Objective-C类公开给JavaScript。比方说,在一个公开的Objective-C类的方法中,遇到了引发异常的情况。有没有办法创建所述异常,并提高它,使JavaScript代码可以处理它,因为它会处理常规的JavaScript异常?从Objective-C引发异常返回Javascript

我试着做一个普通的旧[NSException raise...],并立即导致崩溃。

我降级到检测提升条件,将该条件传回到JavaScript,并让JavaScript做抛出?

+0

与问题没有直接关系,但在Objective-C中抛出异常的情况非常少见。 – nhgrif

+0

是的。在这种情况下,Objective-C仅仅是一个javascript调用的端点。意图是将异常扔到JavaScript代码并在那里处理。 – Carl

回答

2

Objective-C JSContext object has exception property,that may be used to throw an exception to JavaScript。在头文件,根据注释:

之前一个回调从JavaScript制成一个Objective-C嵌段或 的方法,所述的异常属性的先前值将被保留 和属性将被设置为零。回调完成后 将读取异常属性的新值,并恢复之前的值 。如果异常的新值不为零,回调将导致 的值被抛出。