如何在我的 iPhone 应用程序中使用 NSError?

How can I use NSError in my iPhone App?(如何在我的 iPhone 应用程序中使用 NSError?)
本文介绍了如何在我的 iPhone 应用程序中使用 NSError?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在处理我的应用程序中的错误,我正在研究使用 NSError.我对如何使用它以及如何填充它感到有些困惑.

I am working on catching errors in my app, and I am looking into using NSError. I am slightly confused about how to use it, and how to populate it.

有人可以提供一个关于我如何填充然后使用 NSError 的示例吗?

Could someone provide an example on how I populate then use NSError?

推荐答案

好吧,我通常做的是让我的可能在运行时出错的方法引用 NSError 指针.如果该方法确实出了问题,我可以使用错误数据填充 NSError 引用并从该方法返回 nil.

Well, what I usually do is have my methods that could error-out at runtime take a reference to a NSError pointer. If something does indeed go wrong in that method, I can populate the NSError reference with error data and return nil from the method.

例子:

- (id) endWorldHunger:(id)largeAmountsOfMonies error:(NSError**)error {
    // begin feeding the world's children...
    // it's all going well until....
    if (ohNoImOutOfMonies) {
        // sad, we can't solve world hunger, but we can let people know what went wrong!
        // init dictionary to be used to populate error object
        NSMutableDictionary* details = [NSMutableDictionary dictionary];
        [details setValue:@"ran out of money" forKey:NSLocalizedDescriptionKey];
        // populate the error object with the details
        *error = [NSError errorWithDomain:@"world" code:200 userInfo:details];
        // we couldn't feed the world's children...return nil..sniffle...sniffle
        return nil;
    }
    // wohoo! We fed the world's children. The world is now in lots of debt. But who cares? 
    return YES;
}

然后我们可以使用这样的方法.除非方法返回 nil,否则不要费心检查错误对象:

We can then use the method like this. Don't even bother to inspect the error object unless the method returns nil:

// initialize NSError object
NSError* error = nil;
// try to feed the world
id yayOrNay = [self endWorldHunger:smallAmountsOfMonies error:&error];
if (!yayOrNay) {
   // inspect error
   NSLog(@"%@", [error localizedDescription]);
}
// otherwise the world has been fed. Wow, your code must rock.

我们能够访问错误的 localizedDescription,因为我们为 NSLocalizedDescriptionKey 设置了一个值.

We were able to access the error's localizedDescription because we set a value for NSLocalizedDescriptionKey.

了解更多信息的最佳位置是 Apple 的文档.确实不错.

The best place for more information is Apple's documentation. It really is good.

可可是我的女朋友.

这篇关于如何在我的 iPhone 应用程序中使用 NSError?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持编程学习网!

本站部分内容来源互联网,如果有图片或者内容侵犯您的权益请联系我们删除!

相关文档推荐

Why local notification is not firing for UNCalendarNotificationTrigger(为什么没有为UNCalendarNotificationTrigger触发本地通知)
iOS VoiceOver functionality changes with Bundle Identifier(IOS画外音功能随捆绑包标识符而变化)
tabbar middle tab out of tabbar corner(选项卡栏中间的选项卡角外)
Pushing UIViewController above UITabBar(将UIView控制器推送到UITabBar上方)
How can I sync two flatList scroll position in react native(如何在本机Reaction中同步两个平面列表滚动位置)
Get an event when UIBarButtonItem menu is displayed(显示UIBarButtonItem菜单时获取事件)