Swift
-
에러 처리Swift/swift 문법 2023. 3. 27. 21:21
함수에서 에러가 발생하는 경우 이를 알릴 수 있는 수단이 필요함. : 에러가 나올 수 있는 함수에는 표시하기로 함 (throws 키워드) 에러타입 정의 enum Errors: Error { case errorMax case errorMin } : 사전에 에러타입을 정의해주어야함. func checkError(a:Int) throws -> Bool{ // :throws 키워드로 에러를 던질 수 있음을 알림 if a > 5 { throw Errors.errormax //5 이상인 경우 에러타입 반환 } } 에러가 발생할 수 있는 함수 실행 방법 do { let result = try checkError(m:5) //try키워드 필수, 함수가 정상적으로 실행 된 경우에 result에 할당 } catch { /..
-
Result TypeSwift/swift 문법 2023. 3. 27. 20:19
: 에러가 발생하는 경우 에러를 외부로 던지는 것이 아니라, 리턴 타입 자체를 Result Type으로 구현하여 함수 실행의 성공과 실패를 담아서 리턴 Result Type 사용 이유: try구문으로 에러 처리를 하기 힘듦 -> 타입 자체에 에러를 던질 수 있는 타입을 만들어준다. Result Type -> 열거형으로 구현 case success(Success) case failure(Failure) : 연관값을 반드시 필요로 한다. func resultType(m: Int) -> Result { if m > 5 { //throw 키워드가 아닌 return 키워드 이용 return Result.failure(valueError.maxError) //failure열거형 채택, 내부의 error중 maxEr..
-
스위프트 : 익스텐션 extensionSwift/swift 문법 2022. 9. 7. 21:40
익스텐션 구조체, 열거형, 클래스, 프로토콜 타입에 새로운 기능을 추가할 수 있음. 익스텐션은 타입에 새로운 기능을 추가할 수는 있지만, 기존에 존재하는 기능을 재정의 하는 것은 불가. 클래스의 상속과 비교하였을 때, 상속은 수직 확장 익스텐션은 수평 확장임. 익스텐션은 클래스 이외에도 구조체, 프로토콜, 제네릭 등 모든 타입에서 활용 가능함. 사용 방법) extension 확장할 타입 이름 : 프로토콜1, 프로토콜2 { //프로토콜 요구사항 구현 }
-
스위프트 - 클로저를 사용한 프로퍼티 기본값 설정Swift/swift 문법 2022. 9. 7. 15:07
클래스 SchoolClass의 students의 값을 클로저를 이용해 기본값 설정. 주의할 점은 클로저 작성 이후에 ()소괄호 넣어주어야 클로저의 return값으로 사용할 수 있음. 빠트리면 '클로저'자체가 값으로 들어가서 의도한 결과와 달라짐. [예시코드] import UIKit struct Student { var name: String? var number: Int? } class SchoolClass { var students: [Student] = { var arr: [Student] = Student for num in 1...10 { var student: Student = Student(name: nil, number: num) arr.append(student) } return arr }..