일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 애플
- 아이폰
- screen
- 링크
- Mobile
- windows7
- 윈도우즈7
- mac
- java
- WSDL
- Number
- c#
- 윈도구7
- 아이맥
- ObjectiveC
- WebService
- windows
- 볼링
- 오브젝티브C
- Objective-C
- 퇴사
- 맥
- cagr48com
- install
- 7932
- iPhone
- 형식
- VISTA
- 설치
- 윈도구
Archives
- Today
- Total
A colossal Dreamer: GR鐵塔-天生我材
Cocoa NSError 를 swift 에서 다루기 본문
Error Domain=NSCocoaErrorDomain
Code=260
"파일이 존재하지 않기 때문에 ‘xxx’ 파일을 열 수 없습니다."
UserInfo={
NSFilePath=/var/mobile/Containers/Data/Application/xxx,
NSUnderlyingError=0x106ef7da0 {
Error Domain=NSPOSIXErrorDomain
Code=2
"No such file or directory"
}
}
swift 에서 NSError 잡는 깔끔한 방법
do {
try fileManager.moveItem(at: fromURL, to: toURL)
} catch CocoaError.fileNoSuchFile {
print("Error: no such file exists")
} catch CocoaError.fileReadUnsupportedScheme {
print("Error: unsupported scheme (should be 'file://')")
}
NSError 의 코드는 아래와 같이 NS_ERROR_ENUM 으로 정의되어 위와 같이 접근이 가능하다.
NS_ERROR_ENUM(NSCocoaErrorDomain) {
// File system and file I/O related errors, with NSFilePathErrorKey or NSURLErrorKey containing path or URL
NSFileNoSuchFileError = 4, // Attempt to do a file system operation on a non-existent file
NSFileLockingError = 255, // Couldn't get a lock on file
NSFileReadUnknownError = 256, // Read error (reason unknown)
NSFileReadNoPermissionError = 257, // Read error (permission problem)
NSFileReadInvalidFileNameError = 258, // Read error (invalid file name)
NSFileReadCorruptFileError = 259, // Read error (file corrupt, bad format, etc)
NSFileReadNoSuchFileError = 260, // Read error (no such file)
.....
};
NSCocoaErrorDomain 으로부터 Swift 자동생성된 코드
extension CocoaError {
public static var fileNoSuchFile: CocoaError.Code { get }
public static var fileLocking: CocoaError.Code { get }
public static var fileReadUnknown: CocoaError.Code { get }
public static var fileReadNoPermission: CocoaError.Code { get }
public static var fileReadInvalidFileName: CocoaError.Code { get }
public static var fileReadCorruptFile: CocoaError.Code { get }
public static var fileReadNoSuchFile: CocoaError.Code { get }
public static var fileReadInapplicableStringEncoding: CocoaError.Code { get }
public static var fileReadUnsupportedScheme: CocoaError.Code { get }
@available(macOS 10.5, iOS 2.0, *)
public static var fileReadTooLarge: CocoaError.Code { get }
...
}
참조: https://developer.apple.com/documentation/swift/handling-cocoa-errors-in-swift
'Development > 아이폰' 카테고리의 다른 글
WWDC 2023 Platform states of unions 요약 (0) | 2023.06.09 |
---|---|
WWDC 2023 keynote 요약 (2) | 2023.06.07 |
Debugging CoreData with symbolic break (0) | 2023.01.11 |
iOS 앱의 파일 공유 files App (0) | 2022.11.02 |
modify playingRate with AVAudioEngine, AVAudioPlayerNode (0) | 2022.09.26 |