본문 바로가기

iOS (스파르타)/Swift 문법

문법 심화 - 고차함수, 예외처리

05. 고차함수

 

1) map 함수

  • map 함수는 컬렉션 내부의 기존 데이터를 변형(transform)하여 새로운 컬렉션를 생성합니다.
  • 기존의 컬렉션의 요소에 대해 정의한 익명함수로 매핑한 결과를 새로운 컬렉션으로 반환합니다.

2) filter 함수

  • 기존 컨테이너의 요소 중 조건에 만족하는 값에 대해 새로운 컨테이너를 만들어 반환합니다.

3) reduce 함수

  • 기존의 컨테이너의 요소에 대해 정의한 클로저로 매핑한 결과를 새로운 컨테이너로 반환합니다.

 

 

06. 예외처리

 

1) 실패 가능한 상황과 예외 처리

  • 에러처리
    • 프로그램에서 에러가 발생한 상황에 대응하고 이에 대응하는 과정입니다.
    • Swift에서는 런타임에 에러가 발생한 경우, 이를 처리를 지원하는 클래스를 제공합니다.
    • 프로그램에서 모든 기능이 개발자가 예상하고 원하는대로 동작한다는 보장은 없습니다. 따라서 예외 처리를 통해 예외 상황을 구별하고 프로그램 자체적으로 오류를 해결하거나, 사용자에게 어떤 에러가 발생했는지 알려주는 등에 대한 조치와 대응을 해야합니다.
  • Error
    • Error는 던져질 수 있는 오류 값을 나타내는 유형을 말합니다.
    • Error 프로토콜을 채택하여 사용자 정의 에러를 정의하여 사용할 수 있습니다(프로토콜은 8강 참고)

 

2) throws 와 do-catch 문

  • throw와 throws
    • throws는 리턴 값을 반환하기 전에 오류가 발생하면 에러 객체를 반환한다는 의미입니다.
    • throws는 오류가 발생할 가능성이 있는 메소드 제목 옆에 써줍니다.
    • throw는 오류가 발생할 구간에서 써줍니다.
  • throw로 던진 에러를 do-catch문에서 처리합니다.

 

3) try 문 - try, try?, try!

  • try
    • 에러가 발생할 수 있는 코드 블록을 표시합니다
    • 에러를 던질 수 있는 함수나 메서드를 호출할 때 사용됩니다.
    • 해당 코드 블록에서 발생한 에러를 잡거나 처리할 수 있습니다(do - catch문).
  • try?
    • do - catch 구문 없이도 사용이 가능합니다.
    • 에러 발생시 nil값을 반환합니다.
    • 에러가 발생하지 않으면 리턴 값의 타입은 옵셔널로 반환됩니다.
  • try!
    • 에러가 발생을 하면 앱이 강제 종료됩니다.
    • 반환 타입은 옵셔널이 언래핑된 값이 리턴됩니다.
    • 오류가 발생하지 않는다는 보장아래 사용해야합니다.