RSS

NSErrorの覚え書き

NSErrorを使ったメソッドのエラー処理についての覚え書き.エラーを受け取る必要がないときは,下記の例だと,[self hogehoge:nil]にする.

@interface MyViewController : UIViewController
-(BOOL)hogehoge:(NSError **)error;
@end

@implementation MyViewController

 -(BOOL)hogehoge:(NSError **)error
{
    if( 問題が起こったとき )
    {
        if( error )
        {
            NSMutableDictionary* errDetails = [NSMutableDictionary dictionary];
            [errDetails setValue:@"エラーの原因など" forKey:NSLocalizedDescriptionKey];
            *error = [NSError errorWithDomain:@"world" code:200 userInfo:errDetails];
        }
        return NO;
    }
    return YES;
}

-(void)main
{
    NSError *err = nil;
    if ( [self hogehoge:&err] == NO)
    {
        NSLog(@"%@", [err localizedDescription]);
    }
}

@end

Bookmark and Share

0 コメント: