iOS NSError 자세히 NSError 오류 코드 대조표 사용자 정의 NSError
//두 가지 초기화 방법: 그 중에서domain은 비워둘 수 없음dict는 비워둘 수 있음
@property (readonly, copy) NSErrorDomain domain;//오류 도메인
오류 영역은 주로 네 가지가 있는데 카본 프레임워크의 Error에 대해서는 OS Status domain(NSOS Status Error Domain), POSIX error에 대해서는 NSPOSIX Error Domain에 속하고 우리의 iOS 개발에 대해서는 일반적으로 NSCocoa Error Domain을 사용한다.NSError.h가 4개의domain을 정의했습니다.
{
//Predefined domain for errors from most AppKit and Foundation APIs. FOUNDATION_EXPORT NSErrorDomain const NSCocoaErrorDomain;
//Other predefined domains; value of "code"will correspond to preexisting values in these domains. FOUNDATION_EXPORT NSErrorDomain const NSPOSIXErrorDomain; FOUNDATION_EXPORT NSErrorDomain const NSOSStatusErrorDomain; FOUNDATION_EXPORT NSErrorDomain const NSMachErrorDomain;
}
@property (readonly) NSInteger code;//오류 코드
@property (readonly, copy) NSDictionary *userInfo;//오류 메시지
@property (readonly, copy) NSString *localizedDescription;//현지화 설명 가져오기
@property (nullable, readonly, copy) NSString *localizedFailureReason;//가져오기 실패 원인
@property (nullable, readonly, copy) NSString *localizedRecoverySuggestion;//복구 권장사항 얻기
@property (nullable, readonly, copy) NSArray *localizedRecoveryOptions;로컬 복구 권장 사항
@property (nullable, readonly, strong) id recoveryAttempter;
@property (nullable, readonly, copy) NSString *helpAnchor;
미리 정의된 사용자 info 키 이름
NSString *const NSUnderlyingErrorKey;//일반 키 NSString*const NSLocalizedDescriptionKey를 사용하는 것이 좋습니다.상세 설명 키 NSString*const NSLocalizedFailureReasonErrorKey;//장애 원인 키 NSString*const NSLocalizedRecovery SuggestionErrorKey;//복구 권장 키 NSString*const NSLocalizedRecoveryOptionsErrorKey;//복구 옵션 키
//기타 키
NSString *const NSRecoveryAttempterErrorKey; NSString *const NSHelpAnchorErrorKey; NSString *const NSStringEncodingErrorKey ; NSString *const NSURLErrorKey; NSString *const NSFilePathErrorKey;
사용 예:
NSDictionary *userInfo1 = [NSDictionary dictionaryWithObjectsAndKeys:@" , ", NSLocalizedDescriptionKey, @" : ", NSLocalizedFailureReasonErrorKey, @" : ",NSLocalizedRecoverySuggestionErrorKey,nil];
NSError *error = [[NSError alloc] initWithDomain:NSCocoaErrorDomain code:4 userInfo:userInfo1];// code 4, 4 。userinfo userinfo1 。userinfo nil, 。
NSLog(@"========%@",[error localizedDescription]);
NSLog(@"========%@",[error localizedFailureReason]);
NSLog(@"========%@",[error localizedRecoverySuggestion]);
2. NSError 오류 코드 대조표
Foundation Constants Reference NSError Codes
NSError codes in the Cocoa error domain.
enum { NSFileNoSuchFileError = 4, NSFileLockingError = 255, NSFileReadUnknownError = 256, NSFileReadNoPermissionError = 257, NSFileReadInvalidFileNameError = 258, NSFileReadCorruptFileError = 259, NSFileReadNoSuchFileError = 260, NSFileReadInapplicableStringEncodingError = 261, NSFileReadUnsupportedSchemeError = 262, NSFileReadTooLargeError = 263, NSFileReadUnknownStringEncodingError = 264, NSFileWriteUnknownError = 512, NSFileWriteNoPermissionError = 513, NSFileWriteInvalidFileNameError = 514, NSFileWriteInapplicableStringEncodingError = 517, NSFileWriteUnsupportedSchemeError = 518, NSFileWriteOutOfSpaceError = 640, NSFileWriteVolumeReadOnlyError = 642m NSKeyValueValidationError = 1024, NSFormattingError = 2048, NSUserCancelledError = 3072,
NSFileErrorMinimum = 0,
NSFileErrorMaximum = 1023,
NSValidationErrorMinimum = 1024,
NSValidationErrorMaximum = 2047,
NSFormattingErrorMinimum = 2048,
NSFormattingErrorMaximum = 2559,
NSPropertyListReadCorruptError = 3840,
NSPropertyListReadUnknownVersionError = 3841,
NSPropertyListReadStreamError = 3842,
NSPropertyListWriteStreamError = 3851,
NSPropertyListErrorMinimum = 3840,
NSPropertyListErrorMaximum = 4095
NSExecutableErrorMinimum = 3584,
NSExecutableNotLoadableError = 3584,
NSExecutableArchitectureMismatchError = 3585,
NSExecutableRuntimeMismatchError = 3586,
NSExecutableLoadError = 3587,
NSExecutableLinkError = 3588,
NSExecutableErrorMaximum = 3839,
} URL Loading System Error Codes
These values are returned as the error code property of an NSError object with the domain “NSURLErrorDomain”.
typedef enum { NSURLErrorUnknown = -1, NSURLErrorCancelled = -999, NSURLErrorBadURL = -1000, NSURLErrorTimedOut = -1001, NSURLErrorUnsupportedURL = -1002, NSURLErrorCannotFindHost = -1003, NSURLErrorCannotConnectToHost = -1004, NSURLErrorDataLengthExceedsMaximum = -1103, NSURLErrorNetworkConnectionLost = -1005, NSURLErrorDNSLookupFailed = -1006, NSURLErrorHTTPTooManyRedirects = -1007, NSURLErrorResourceUnavailable = -1008, NSURLErrorNotConnectedToInternet = -1009, NSURLErrorRedirectToNonExistentLocation = -1010, NSURLErrorBadServerResponse = -1011, NSURLErrorUserCancelledAuthentication = -1012, NSURLErrorUserAuthenticationRequired = -1013, NSURLErrorZeroByteResource = -1014, NSURLErrorCannotDecodeRawData = -1015, NSURLErrorCannotDecodeContentData = -1016, NSURLErrorCannotParseResponse = -1017, NSURLErrorFileDoesNotExist = -1100, NSURLErrorFileIsDirectory = -1101, NSURLErrorNoPermissionsToReadFile = -1102, NSURLErrorSecureConnectionFailed = -1200, NSURLErrorServerCertificateHasBadDate = -1201, NSURLErrorServerCertificateUntrusted = -1202, NSURLErrorServerCertificateHasUnknownRoot = -1203, NSURLErrorServerCertificateNotYetValid = -1204, NSURLErrorClientCertificateRejected = -1205, NSURLErrorClientCertificateRequired = -1206, NSURLErrorCannotLoadFromNetwork = -2000, NSURLErrorCannotCreateFile = -3000, NSURLErrorCannotOpenFile = -3001, NSURLErrorCannotCloseFile = -3002, NSURLErrorCannotWriteToFile = -3003, NSURLErrorCannotRemoveFile = -3004, NSURLErrorCannotMoveFile = -3005, NSURLErrorDownloadDecodingFailedMidStream = -3006, NSURLErrorDownloadDecodingFailedToComplete = -3007 }
3. NSError 사용자 정의
시스템의 NSError는 다음과 같은 코드를 제공하여 사용자 정의할 수 있습니다.
YXError.h와 YXError.m
[objc] view plaincopy
4
4
[objc] view plaincopy
4
다음은 사용된 코드입니다.
[objc] view plaincopy
4
4
참조 링크:https://blog.csdn.net/hdfqq188816190/article/details/52754943
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.