繁体   English   中英

向+ [WKInterfaceController openParentApplication:reply:]提供自定义错误

[英]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);
    }
}

注意:这是一个简化的示例,其中没有考虑到userInforesponse参数。 实际使用时会考虑这些因素。

不幸的是,您无法访问error参数。 我要做的是将任何错误作为字符串传递,并使用通用的字典键。 然后,我在WatchKit端检查该键是否存在,并记录它发现的任何错误。 当然,这并不理想。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM