본문 바로가기

iOS121

클로저 정의 - 코드의 블록입니다. - 참조 타입입니다. - 일급 객체(시민)입니다. 1, 일급 객체는 전달 인자로 보낼 수 있습니다. 2, 일급 객체는 변수, 상수, 등으로 저장하거나 전달 할 수 있습니다. 3, 일급 객체는 함수의 반환 값이 될 수 있습니다. - 함수 또한 클로저의 포함됩니다. ( 함수 = 이름 있는 클로저 ) 형식 - 매개변수가 없는 경우 ( ) 로 생략 가능 - 반환타입이 없으면 void로 생략 가능 { (매개변수 목록) -> 반환타입 in // 실행할 코드 } 예제 1, 함수 - 다음은 일반적인 함수입니다. - Sum 이라는 함수에 매개변수 a, b에 대한 값을 계산해주는 기능입니다. - SumResult라는 변수에 a=1, b=2 값을 입력한 Sum 함수를 초기화하고 실행해보겠습니다... 2022. 2. 1.
값 타입과 참조 타입 클래스 / 구조체 / 열거형 클래스와 구조체, 열거형을 비교하며 값 타입과 참조 타입을 자세히 알아보겠습니다. Class Struct Enum 참조 타입 값 타입 값 타입 단일 상속 상속 불가 상속 불가 (인스턴스/타입)메서드 (인스턴스/타입)메서드 (인스턴스/타입)메서드 (인스턴스/타입)프로퍼티 (인스턴스/타입)프로퍼티 (인스턴스/타입)연산 프로퍼티 Apple 프레임워크의 큰 뼈대는 모두 클래스로 구성 Swift의 대부분의 큰 뼈대는 모두 구조체로 구성 다른 언어의 열거형과는 많이 다른 존재 열거형 자체가 하나의 데이터 타입 열거형의 case 하나하나 전부 하나의 유의미한 값으로 취급 *클래스, 구조체, 열거형 모두 Extension기능 사용 가능* 구조체의 사용 Swift에서 대부분의 뼈대는 모두 구.. 2022. 1. 31.
extensions 정의 - 기존 클래스, 구조체, 열거형, 프로토콜 타입에 새로운 기능을 추가하는 기능입니다. 사용 : 익스텐션 기능을 활용하여 다음과 같은 기능을 추가할 수 있습니다. - 연산 타입 프로퍼티, 연산 인스턴스 프로퍼티 - 타입 메서드 - 인스턴스 메서드 - 이니셜라이저 - 서브스크립트 - 중첩타입(새로운 중첩 타입 정의와 사용) - 기존 타입에 특정 프로토콜을 추가 *extension기능을 통해 기존의 존재하는 기능은 추가할 수 없습니다.* 형식 extension [확장할 타입 이름] { // 추가구현할 기능 } 프로토콜 추가 형식 extension [확장할 타입 이름]: 프로토콜1, 프로토콜2, ... { // 프로토콜 요구사항 } 연산 프로퍼티 (Computed Properties) - 다음 예제는 5.. 2022. 1. 30.
guard 정의 - 코드를 안전하게 처리하기 위해 표현식을 검사하는 목적으로 사용합니다. - 잘못된 값이 전달 될 시에 ( =표현식이 거짓이라면 ) 특정 실행구문을 빠르게 종료하고, 표현식이 거짓이 아니라면 else 블록 밖의 값을 실행 시킵니다 사용 - 옵셔널 바인딩을 하기위한 목적으로 사용됩니다. - if 문과 다르게, 옵셔널 바인딩한 값을 메서드 내에서 지역변수처럼 사용할 수 있습니다. - 타입캐스팅과도 자주 사용됩니다. - 디버깅 모드 뿐만 아니라 어떠한 조건에서도 동작합니다. 형식 guard else { // 표현식이 거짓일 경우 실행될 코드 // 탈출 구문 } // 표현식이 참일 경우 실행될 코드 예제 1 - 함수를 통한 guard문 예제입니다. - age의 값이 0~120 사이의 정수이기 때문에 els.. 2022. 1. 28.
assert 정의 assert문은 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력합니다. 실제 앱 성능엔 영향을 끼치지 않고, 디버깅 모드에서만 동작되는 특징이 있습니다. 선언 형식 - 총 4개의 파라미터를 작성해줍니다. 1, condition : 테스트할 조건을 작성하는 부분입니다. 2, message : 조건의 값이 false일 경우 출력될 메세지를 작성하는 부분입니다. 기본값은 빈 문자열입니다. 3, file : 메세지를 출력할 파일의 이름을 작성하는 부분입니다. assert(_:_:file:line:) 이 기본값으로 호출됩니다. 4, line : 출력할 메세지의 라인 수를 작성하는 부분입니다. assert(_:_:file:line:) 이 기본값으로 호출됩니다. func assert(_ condit.. 2022. 1. 28.
Initializer 정의 초기화 = 클래스, 구조체, 열거형 인스턴스를 사용하기 위해 준비 작업을 하는 단계입니다. 이 단계에서 저장 프로퍼티의 초기 값을 설정. 초기화 과정은 initializer를 정의 하는 것으로 구현 할 수 있습니다. initializer는 값을 반환하지 않으며 초기화와 반대로 여러 값과 자원을 해지시키는 deinitializer도 있습니다. - 인스턴스가 생성 되었을 때, 기본값(초기화 과정)이 필수적으로 있어야합니다. 이 과정에서 이니셜라이저를 사용하면 프로퍼티 기본값을 사용하지 않더라도 실제로 인스턴스가 초기화될 때 원하는 값들을 초기화시킬 수 있습니다. 이니셜라이저의 사용 이니셜라이저는 특정 타입의 인스턴스를 생성합니다. 아래의 형식은 가장 간단한 형태로 파라미터가 없이 init 키워드를 사용.. 2022. 1. 27.