오류 정보 NSError

3304 단어
1. 시스템 오류 정보 얻기
예를 들어 파일을 이동할 때 파일 가져오기 작업 오류:
<span style="background-color: rgb(255, 255, 255);"> <span style="font-size:18px;">   NSError *error =nil;
    [[NSFileManager defaultManager]moveItemAtPath:@"/users"toPath:@"/hh"error:&error];
    if (error) {
        NSLog(@" ,  error = %@",[error localizedDescription]);
        NSLog(@"11........//%d",[error code]);
        NSLog(@"11。。。%@",[error domain]);
        NSLog(@"11........//%@",[error userInfo]);
        NSLog(@"11localizedFailureReason = %@",[error localizedFailureReason]);
    }</span></span>

2014-04-23 09:14:16.609 Error Demo[428:60b]
오류 메시지가 있으면, 오류의 로컬화 설명을 인쇄합니다. error = The operation couldn't be completed.(Cocoa error 513.)
2014-04-23 09:14:16.610 Error Demo[428:60b] 11........//513
2014-04-23 09:14:16.611 Error Demo[428:60b] 11...NSCocoaErrorDomain
2014-04-23 09:14:16.635 Error Demo[428:60b] 11........//{
    NSDestinationFilePath = "/hh";
    NSFilePath = "/users";
    NSSourceFilePathErrorKey = "/users";
    NSUnderlyingError = "Error Domain=NSPOSIXErrorDomain Code=13\"The operation couldn\U2019t be completed. Permission denied\"";
    NSUserStringVariant =     (
        Move
    );
}
2014-04-23 09:14:16.635 Error Demo[428:60b] 11localizedFailureReason = (null)
2. 사용자 정의 오류 정보
일반적으로 다음 문장을 통해 NSError 개체를 사용자 정의할 수 있습니다.
<span style="background-color: rgb(255, 255, 255);"><span style="font-size:18px;">#define CustomErrorDomain @"com.xiaodao.test"
typedef enum {
    
       XDefultFailed = -1000,
       XRegisterFailed,
       XConnectFailed,
       XNotBindedFailed
    
}CustomErrorFailed;
    NSDictionary *userInfo = [NSDictionary dictionaryWithObject:@"test error"forKey:NSLocalizedDescriptionKey];
    NSError *err2 = [NSError errorWithDomain:CustomErrorDomain code:XRegisterFailed userInfo:userInfo];
    NSLog(@"22 localizedDescription.....%@",[err2 localizedDescription]);
    NSLog(@"22........//%d",[err2 code]);
    NSLog(@"22。。。%@",[err2 domain]);
    NSLog(@"22.....userinfo %@",[err2 userInfo]);</span></span>

2014-04-23 09:14:16.636 Error Demo[428:60b] 22 localizedDescription.....test error
2014-04-23 09:14:16.636 Error Demo[428:60b] 22........//-999
2014-04-23 09:14:16.637 Error Demo[428:60b] 22...com.xiaodao.test
2014-04-23 09:14:16.637 Error Demo[428:60b] 22.....userinfo {
    NSLocalizedDescription = "test error";
}
여기서 사용자 정의 오류 도메인 객체CustomErrorDomain은 일반적으로 도메인 이름으로 다시 쓰거나 다른 문자열일 수 있습니다.
코드 오류 표지, 시스템의 코드는 일반적으로 0보다 크고, 사용자 정의 코드는 매거진을 사용할 수 있습니다. (음수를 사용하는 것이 가장 좋지만 반드시 필요한 것은 아닙니다.)
사용자 정보 사용자 정의 오류 정보, NSLocalizedDescriptionKey는 NSError 헤더 파일에 미리 정의된 키입니다. 오류를 표시하는 로컬화 설명
NSError의 localizedDescription 방법을 통해 적절한 값 정보를 얻을 수 있습니다.
3. NSError 헤더 파일 분석
1.NSError 객체에는 주로 세 개의 개인 변수가 있습니다.
오류 도메인(NSInteger):_domain
오류 표시(NSString*): _code
오류 세부 정보(NSDictionary *): _userInfo
일반용_domain 및_코드와 함께 오류 정보를 표시합니다

좋은 웹페이지 즐겨찾기