当前位置:  开发笔记 > 前端 > 正文

Objective-C中的异常/错误处理(iPhone应用程序)

如何解决《Objective-C中的异常/错误处理(iPhone应用程序)》经验,为你挑选了1个好方法。



1> Quinn Taylor..:

对于崩溃,第一步是使用错误消息和调试器来确定导致问题的呼叫.如果问题是由未捕获的异常引起的,请阅读关于异常处理的 Apple文章.具体答案实际上取决于您的代码以及导致崩溃的确切原因,因此我不会推测特定的解决方案.

至于检测服务器错误响应代码(例如404),这更具体到WebKit.我假设你在iPhone上使用UIWebView,你可能已经注意到没有一个主要方法返回错误.这是因为它使用委托模型异步报告进度或错误.(这是有道理的,因为您不希望您的UI代码受到缓慢加载(或不存在)网页的支配.要获得此类错误的通知,有几个步骤.

    采用UIWebViewDelegate协议,通常在同一个类中启动网页加载以方便使用.

    将该对象设置为UIWebView实例的委托.(它有一个delegate属性,所以你可以使用任何一种uiView.delegate = self[uiView setDelegate:self]基于你喜欢的东西.)

    webView:didFailLoadWithError:在该类中实现该方法.(通过实现也可以在完成加载时通知您webViewDidFinishLoad:.)这是您包含发生错误时应该发生的事情的逻辑的地方.

我没有看到任何关于通过此委托方法传回的任何特定错误的内容的详细文档,但它是一个标准NSError对象,我建议通过调用其方法来检查内容,例如-localizedDescription-userInfo.

下面是一些示例代码,为简洁起见,排除了#import语句.

MyClass.h

@interface MyClass : NSObject  {
  IBOutlet UIWebView* myWebView;
}
-(void)webView:(UIWebView*)webView didFailLoadWithError:(NSError *)error;
@end

MyClass.m

@implementation MyClass
- (id) init {
  if ((self = [super init]) == nil)
    return nil;
  // initialize myWebView
  myWebView.delegate = self;
  return self;
}

- (void) webView:(UIWebView*)webView didFailLoadWithError:(NSError*)error {
  ...
}
@end

推荐阅读
围脖上的博博_771
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有