zoukankan      html  css  js  c++  java
  • 创建自己的NSError对象

    Generating Your Own Errors
    In order to create your own NSError objects you’ll need to define your own error domain, which should be of the form:

    com.companyName.appOrFrameworkName.ErrorDomain
    You’ll also need to pick a unique error code for each error that may occur in your domain, along with a suitable description, which is stored in the user info dictionary for the error, like this:

        NSString *domain = @"com.MyCompany.MyApplication.ErrorDomain";
        NSString *desc = NSLocalizedString(@"Unable to…", @"");
        NSDictionary *userInfo = @{ NSLocalizedDescriptionKey : desc };
     
        NSError *error = [NSError errorWithDomain:domain
                                             code:-101
                                         userInfo:userInfo];
    This example uses the NSLocalizedString function to look up a localized version of the error description from a Localizable.strings file, as described in Localizing String Resources.

    If you need to pass back an error by reference as described earlier, your method signature should include a parameter for a pointer to a pointer to an NSError object. You should also use the return value to indicate success or failure, like this:

    - (BOOL)doSomethingThatMayGenerateAnError:(NSError **)errorPtr;
    If an error occurs, you should start by checking whether a non-NULL pointer was provided for the error parameter before you attempt to dereference it to set the error, before returning NO to indicate failure, like this:

    - (BOOL)doSomethingThatMayGenerateAnError:(NSError **)errorPtr {
        ...
        // error occurred
        if (errorPtr) {
            *errorPtr = [NSError errorWithDomain:...
                                            code:...
                                        userInfo:...];
        }
        return NO;
    }

  • 相关阅读:
    Leetcode Reverse Words in a String
    topcoder SRM 619 DIV2 GoodCompanyDivTwo
    topcoder SRM 618 DIV2 MovingRooksDiv2
    topcoder SRM 618 DIV2 WritingWords
    topcoder SRM 618 DIV2 LongWordsDiv2
    Zepto Code Rush 2014 A. Feed with Candy
    Zepto Code Rush 2014 B
    Codeforces Round #245 (Div. 2) B
    Codeforces Round #245 (Div. 2) A
    Codeforces Round #247 (Div. 2) B
  • 原文地址:https://www.cnblogs.com/NSNULL/p/4482644.html
Copyright © 2011-2022 走看看