본문 바로가기

분류 전체보기140

Swift문법 - error handling 순서 throws do~try~catch throws 발생(throwing) 감지(catching) 전파(propagating) 조작(manipulating) throws키워드가 들어간 함수는 throwing function이라고 부르며 에러핸들링 과정이 꼭 필요합니다 do~try~catch 기본 표현식 do { try 오류발생가능 코드 } catch 오류패턴1 { //where절 추가가능 //처리결과과 } catch 오류패턴2 { //처리결과과 } catch { //패턴을 명시하지 않으면 모든에 //처리결과 } cs 에러전파 차단 함수(메서드)에 에러가 발생하지 않을것이라는 확신이 있는경우 try!를 사용해 catch문을 생략 let tmp = try! manAge(of: "21")// 에러가 발생하면.. 2022. 1. 8.

Swift문법 - 옵셔널 체이닝 순서 옵셔널 체이닝의 목적 옵셔널 체이닝 옵셔널체이닝의 목적 옵셔널체이닝의 목적은 코드의 간결함을 위해서 입니다 옵서널타입의 값이 프로퍼티 혹은 메서드를 가질 때 연속적으로 붙여 쓸 수 있습니다 if let a = bb.abc{ if let x = a.xxx{ print("\(x.yy)") } } //동일 print("\(bb.abc?.xxx?.yy)") cs !을 쓰지 않는 이유는 nil값을 언래핑하는 충돌 가능성이 있기 때문입니다 nil값을 언래핑할 수 없으니 안전한 ?을 사용합니다 옵셔널체이닝 중간에 리턴값으로 nil이 나와도 오류를 발생시키지 않습니다 또한 마지막에 얻는 값이 일반자료형리턴으로 정의되어 있어도 옵셔널타입으로 반환됩니다 옵셔널 체이닝 class Man{ var name: String.. 2022. 1. 7.

Swift문법 - 열거형,구조체 순서 열거형 구조체 구조체와 클래스 열거형(enum) 관련있는 데이터들의 모음 Swift의 열거형은 case로 데이터를 정의하고 func 메서드를 가질 수 있습니다 switch문에서 selft키워드로 적절히 분기처리가 필요합니다 enum Week:String { case Mon, Tue, Wed, Thur, Fri, Sat, Sun func printWeek() -> String{ switch self{ case .Mon, .Tue, .Wed, .Thur, .Fri: return "주중" case .Sat, .Sun: return "주말" } } } print(Week.Sun.printWeek()) //주말 print(Week.Wed.printWeek()) //주중 cs •rawValue enum Cou.. 2022. 1. 6.