목록Swift/공식문서 정리 ( 문법 ) (28)
GGURUPiOS
Optional Chaining (?) 옵셔널 체이닝은 nil일 수도 있는 프로퍼티나 메소드, 그리고 서브스크립트에 질의를 하는 과정 만약 옵셔널이 프로퍼티나 메소드 혹은 서브스크립트에 대한 값을 갖고 있다면 그 값을 반환, 만약 값이 nil이면 nil을 반환 함 강제 언래핑의 대체로써의 옵셔널 체이닝 옵셔널 체이닝은 옵셔널 값 뒤에 물음표를 붙여서 표현 가능 함 강제 언래핑하기 위해서 뒤에 느낌표를 붙이는 것과 문법이 비슷한데 강제 언래핑 → 그 값이 없으면 런타임 에러 옵셔널 체이닝 → nil 반환 예제를 살펴보자 class Person { var residence: Residence? } class Residence { var numberOfRooms = 1 } let john = Person() ..
Deinitialization (초기화 해지) 클래스 인스턴스가 할당 해제되기 직전에 호출됨.(클래스 인스턴스만) init 과 비슷하게 선언하며, deinit 이라는 키워드를 작성함 초기화 해제 작동 방식 스위프트는 더 이상 필요하지 않은 인스턴스를 자동으로 할당 해제하여 리소스를 확보 함 (ARC) 일반적으로는 수동 정리가 필요가 없음. 초기화 해제 실행 다음 예제를 보자 사용자는 게임을 하는데 일정 코인을 은행으로부터 받고, 게임에서 이길 때마다 은행에서 코인을 받아 사용자의 지갑에 저장 class Bank { static var coinsInBank = 10_000 static func distribute(coins numberOfCoinsRequested: Int) -> Int { let numb..
번역본과 영문판 공식문서(공식 사이트)를 번역하면서 보기 때문에 용어가 같은 의미인데 다르게 쓰이는게 많네요. 예를 들면 이니셜라이저 = 초기자, 생성자 (init) 인자 = 인수 (argument) 번역본에서도 initializer 를 그때그때 초기자, 이니셜라이저로 번갈아 부르더군요.. 참고 바랍니당 초기화 부분이 좀 양이 많네요 후.. 화이팅 Initialization ( 초기화 ) 초기화는 사용할 클래스, 구조체, 열거형의 인스턴스를 준비하는 과정임 이 과정에는 해당 인스턴스의 각 저장된 프로퍼티에 대한 초기 값을 설정하고 새 인스턴스를 사용할 준비가 되기 전에 필요한 다른 설정 또는 초기화를 수행하는 작업이 포함됨 특정 타입의 새 인스턴스를 생성하기 위해 호출할 수 있는 특수 메서드와 같은 초기..
Subscripts (서브스크립트) 클래스, 구조체 및 열거형은 컬렉션, 리스트, 시퀀스 등 집합의 특정 멤버 엘리먼트에 간단히 접근할 수 있는 문법임. 서브스크립트를 이용하면 추가적인 메소드 없이 특정 값을 할당 하거나 가져올 수 있음 서브스크립트 문법 서브스크립트를 사용하면 인스턴스의 이름 뒤에 대괄호 안에 하나 이상의 값을 작성하여 유형의 인스턴스를 쿼리할 수 있음 해당 구문은 인스턴스 메서드나, 계산된 프로퍼티 구문과 유사 그러나 인스턴스 메서드와 달리 서브스크립트는 읽기-쓰기 또는 읽기 전용일수 있음 subscript(index: Int) -> Int { get { // Return an appropriate subscript value here. } set(newValue) { // Perfo..
메소드 (Methods) 메소드는 특정 유형과 연관된 함수임 클래스, 구조 및 열거형은 모두 지정된 유형의 인스턴스로 작업하기 위한 특정 작업 및 기능을 캡슐화하는 인스턴스 메서드를 정의 가능. 인스턴스 메소드 특정 클래스, 구조체, 열거형의 인스턴스에 속한 메소드임. 인스턴스 내의 값을 제어하거나 변경 가능. class Counter { var count = 0 func increment() { count += 1 } func increment(by amount: Int) { count += amount } func reset() { count = 0 } } let counter = Counter() // 초기 count 값은 0입니다. counter.increment() // count 값이 1로 변..
Properties ( 프로퍼티 ) 프로퍼티는 값을 특정 클래스, 구조체 또는 열거형과 연결함 저장 프로퍼티(Stored Properties)는 인스턴스의 일부로 저장하는 반면 계산된 프로퍼티(Computed Properties)는 저장하는 대신 계산함 저장 프로퍼티 클래스와 구조체에서만,계산된 프로퍼티는 클래스와 구조체 열거형 모두에서 제공 됨 또한 프로퍼티 옵저버를 정의해서 값이 변할 때마다 모니터링이 가능 함 프로퍼티 래퍼를 사용하여 여러 속성의 getter 밑 setter 에서 코드를 재사용할 수도 있음 저장 프로퍼티 ( Stored Properties ) 저장 프로퍼티는 단순히 값을 저장하고있는 프로퍼티임 let, var 키워드를 이용해서 선언해서 사용 가능 초기 값을 설정하고 수정할 수도 있음..