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;
}
转载于:https://www.cnblogs.com/NSNULL/p/4482644.html