![](/img/trans.png)
[英]TimeOut for WKInterfaceController.openParentApplication?
[英]Supplying a custom error to +[WKInterfaceController openParentApplication:reply:]
+[WKInterfaceController openParentApplication:reply:]
的reply
参数是一个接受(NSDictionary *replyInfo, NSError *error)
。
replyInfo
参数由-[UIApplicationDelegate application:handleWatchKitExtensionRequest:reply:]
方法提供。
但是,第二种方法的reply
参数是一个仅包含(NSDictionary *replyInfo)
; 没有error
参数。
是否可以通过我的iPhone应用程序提供自定义NSError
作为+[WKInterfaceController openParentApplication:reply:]
参数,还是该参数保留给系统? (例如,手表与手机之间的通信错误。)
这是我想做的事的一个例子:
在WatchKit中:
WKInterfaceController.openParentApplication(nil, reply: { (response, error) -> Void in
if error != nil {
println("Error: \(error)")
} else {
doSomethingUseful()
}
}
在UIApplicationDelegate
:
- (void)application:(UIApplication *)application handleWatchKitExtensionRequest:(NSDictionary *)userInfo reply:(void (^)(NSDictionary *))reply {
if (inBadState) {
reply(nil, [NSError errorWithDomain:errorDomain code:errorCode userInfo:nil]);
} else {
reply([self response], nil);
}
}
注意:这是一个简化的示例,其中没有考虑到userInfo
或response
参数。 实际使用时会考虑这些因素。
不幸的是,您无法访问error
参数。 我要做的是将任何错误作为字符串传递,并使用通用的字典键。 然后,我在WatchKit端检查该键是否存在,并记录它发现的任何错误。 当然,这并不理想。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.