📱 Mobile/🚀 Swift 15

[Swift] 오류 처리

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 오류타입 정의하기 오류 타입으로 사용되는 열거형을 정의할 때는 반드시 Error라는 프로토콜을 구현해야 한다. protocol Error { } 오류 던지기 우리가 작성한 오류 타입 객체는 함수나 메소드를 실행하는 과정에서 필요에 따라 외부로 던져 실행 흐름을 옮겨버릴 수 있다. 이때 함수나 메소드는 오류 객체를 외부로 던질 수 있다는 것을 컴파일러에 알려주기 위해 정의 구문을 작성할 때 throws 키워드를 추가한다. func canThrowErrors() throws -> String func cannotThrwoErrors() -> String ..

[Swift] 프로토콜

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 프로토콜 : 클래스나 구조체가 어떤 기준을 만족하거나 특수한 목적을 달성하기 위해 구현해야 하는 메소드와 프로퍼티의 목록 🚀 명세 : 프로토콜에 선언된 프로퍼티나 메소드의 형식 🚀 프로토콜을 구현한다 : 이 명세에 맞추어 실질적인 내용을 작성하는 것 프로토콜의 정의 protocol { ... ... } 🚀스위프트에서 프로토콜을 구현할 수 있는 구현체들 구조체 클래스 열거형 익스텐션 프로토콜 구현을 위해 가장 먼저 할 일은 이 프로토콜을 구현하겠다고 선언하는 것이다. struct / class / enum / extention 객체명 : 구현할 프로토콜..

[Swift] 열거형과 익스텐션

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 🚀 열거형은 문자열이나 정수값 등 직접 입력받아야 할 정보들을 입력 대신 선택할 수 있도록 만들어 줌으로써 값의 범위를 제한하고 무작위로 값이 입력되는 것을 방지하여 코드의 안정성을 높여주는 역할을 한다. 🚀 익스텐션은 기존에 작성된 객체를 직접 수정하지 않고도 기능을 추가하는 방법을 제공한다. 개발에 제약을 줄이고 생산성을 높여주는 방법이라고 할 수 있다. 열거형 하나의 주제로 연관된 데이터들이 멤버로 구성되어 있는 자료형 객체 열거형에서 데이터들을 열거형 객체를 정의하는 시점에 함께 정의된다. 따라서 데이터를 함부로 삭제하거나 변경할 수 없으며, ..

[Swift] 구조체와 클래스 - (2)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 상속 한 클래스가 다른 클래스에서 정의된 프로퍼티나 메소드를 물려받아 사용하는 것 프로퍼티와 메소드를 물려준 클래스는 부모 클래스 = 상위 클래스 = 슈퍼 클래스 = 기본 클래스 프로퍼티와 메소드를 물려받은 클래스는 자식 클래스 = 하위 클래스 = 서브 클래스 = 파생 클래스 서브 클래싱 먼저 기본 클래스 A 를 정의한다. class A { var name = "Class A" var description: String { return "This class name is \(self.name)" } func foo() { print("\(self.na..

[Swift] 구조체와 클래스 - (1)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 🚀 유연성 : 코드를 떼어서 다른 곳으로 옮기거나 새로운 코드를 추가하기가 쉽다는 뜻으로 의존성의 반대 개념 🚀 구조체 VS 클래스 [ 두 객체의 공통점 ] 프로퍼티 : 변수나 상수를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다. 메소드 : 함수를 사용하여 기능을 제공하는 메소드를 정의할 수 있다. 서브 스크립트 : 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의할 수 있다. 초기화 블록 : 객체를 원하는 초기 상태로 설정해주는 초기화 블록을 정의할 수 있다. 확장 : 객체에 함수적 기능을 추가하는 확장 구문을 사용할 수 있다. 프로..

[Swift] 함수 - (3)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 클로저 🚀 스위프트에서 클로저는 일회용 함수를 작성할 수 있는 구문이다. 일회용 함수란 한 번만 사용한 구문들의 집합이면서, 그 형식은 함수로 작성되어야하는 제약조건이 있을 때 만들어 사용할 수 있는 함수를 이야기한다. 전통적인 명령형 언어에서는 모든 함수에 이름이 부여되어야 하지만 일회용 함수는 한 번만 사용하면 되므로 굳이 함수의 이름을 작성할 필요 없이 생략한다는 점에서 "익명 함수"라고 부르기도 한다. 🚀 스위프트에서 클로저라고 부르는 객체는 대부분 다음 세가지의 경우 중 하나에 해당한다. 전역 함수 : 이름이 있으며, 주변 환경에서 캡쳐할 어..

[Swift] 함수 - (2)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 꼼꼼한 재은씨의 Swift 문법편 A new tool for teams & individuals that blends everyday work apps into one. www.notion.so 일급 객체로서의 함수 일급 함수의 특성 객체가 다음의 조건을 만족하는 경우 이 객체를 일급 객체로 간주한다. 객체가 런타임에도 생성이 가능해야 한다. 인자값으로 객체를 전달할 수 있어야 한다. 반환값으로 객체를 사용할 수 있어야 한다. 변수나 데이터 구조 안에 저장할 수 있어야 한다. 할당에 사용된 이름과 관계없이 고유한 구별이 가능해야 한다. 🚀 함수가 이런..

[Swift] 함수 - (1)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 함수는 대부분의 프로그래밍 언어에서 지원하는 개념으로, 프로그래밍 실행 과정 중에서 독립적으로 처리될 수 있는 부분을 분리하여 구조화한 객체를 의미한다. 🚀 함수 사용의 이점 동일한 코드가 여러 곳에서 사용될 때 이를 함수화하면 재작성할 필요 없이 함수 호출만으로 처리할 수 있다. 전체 프로세스를 하나의 소스 코드에서 연속적으로 작성하는 것보다 기능 단위로 함수화하면 가독성이 좋아지고 코드와 로직을 이해하기 쉽다. 비즈니스 로직을 변경해야 할 때 함수 내부만 수정하면 되므로 유지보수가 용이하다. 사용자 정의 함수 func 함수이름(매개변수1: 타입, ..

[Swift] 옵셔널 (Optional)

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 옵셔널은 스위프트에서 도입된 새로운 개념으로서 언어 차원에서 프로그램의 안전성을 높이기 위해 사용하는 개념이다. 옵셔널의 개념을 한 문장으로 정의하면 'nil을 사용할 수 있는 타입과 사용할 수 없는 타입을 구분하고, 사용할 수 있는 타입을 가리켜 옵셔널 타입 이라고 부른다.' 고 할 수 있다. nil이란? 값이 없음을 의미하는 특수한 값 let capital = ["KR" : "Seoul", "CN" : "Beijing", "JP" : "Tokyo"] capital["ko"] // nil 스위프트에서는 값을 처리하는 과정에 문제가 있을 경우 많은 부..

[Swift] 집단 자료형

🚀작성자의 Swift 정리 원본인 Notion 구경하기 -> www.notion.so/Swift-59150070adb0467ea11d4f69090dbb24 배열 배열은 일련의 순서를 가지는 리스트 형식의 값을 저장하는데에 사용되는 자료형 배열에 입력되는 개발 아이템들은 모두 각각의 순서가 있다. 이 순서를 "인덱스"라고 한다. 배열에서 인덱스는 순서대로 할당되며, 중간에 값을 생략하거나 건너뛰는 경우는 없다. 배열에 저장할 아이템의 타입에는 제약이 없지만, 하나의 배열에 저장하는 아이템 타입은 모두 동일해야 한다. 선언 시 배열에 저장할 아이템 타입을 명확히 정의해야 한다. 배열의 크기는 동적으로 확장할 수 있음 // 정적인 방식의 배열 선언 var cities = ["Seoul", "New York",..

반응형