예제

    Swift 타입캐스팅 (형변환)

    Swift 타입캐스팅 (형변환)

    Swift의 타입캐스팅은 인스턴스의 타입을 확인거나 클래스의 인스턴스를 부모 또는 자식클래스의 타입으로 사용할 수있는지 확인하는 용도로 사용합니다. is 또는 as를 사용합니다. 그림으로 간단히 설명해보겠습니다. Person - Study - Programming 순으로 부모-자식클래스라고 생각해봅시다. Programming 클래스는 Psrson클래스의 자식 클래스인 Study의 자식클래스입니다. Person을 상속한 Study를 상속했으니, 당연히 Person의 모든 프로퍼티가 있습니다. 따라서 true입니다 반대로 Person은 Programming의 모든 프로퍼티를 갖고 있지 않아서 Person클래스는 Programming으로 사용이 불가능합니다. 반대로 Person은 Programming의 모든 ..

    Swift 클로저

    Swift 클로저

    Closures입니다. closer 아닙니다!! ㅎㅋㅋ 참조 타입인 클로저란 코드의 블럭을 뜻합니다. 자세히 설명하자면, 코드안에서 전달되어 사용할 수 있는 로직을 가진 코드의 코드의 블럭이며 {}로 구분됩니다. 일급 시민 취급이라 전달인자 및 변수, 상수들으로 저장, 전달이 가능합니다. 함수는 클로저의 일종으로 이름이 있는 클로저라고 생각하면 된다고 합니다. 전역 함수 : 이름이 있고 어떤 값도 캡쳐하지 않는 클로저 중첩 함수 : 이름이 있고 관련한 함수로 부터 값을 캡쳐 할 수 있는 클로저 클로저 표현 : 경량화 된 문법으로 쓰여지고 관련된 문맥(context)으로부터 값을 캡쳐할 수 있는 이름이 없는 클로저 Swift에서 클로저는 다음과 같은 내용을 포함해 최적화되어 있습니다. 문맥(context)..

    Swift 사용자 정의 타입 - enum

    Swift 사용자 정의 타입 - enum

    swift의 열거형은 다른 언어와는 많이 다름으로 잘 살펴봐야 합니다. 기본 형태 enum EnumName{ //한줄에 하나씩 정의도 가능하고 case one case two //한줄에 여러개 정의도 가능합니다. case three, four, five } 인스턴스 생성 var count = EnumName.one * count는 초기화시에 타입추론이 되서 EnumName의 형을 갖게 됩니다. 축약형 문법 (dot syntax) count의 형이 EnumName으로 한번 정의되면, 다음 값을 할당시 형을 생략한 점문법을 이용해서 값을 항당하는 축약형 문법을 사용할 수 있습니다. enum EnumName{ case one case two case three, four, five } var count = E..

    Swift 옵셔널

    Swift 옵셔널

    let greensky: Person? = Person(name: "greensky") let apart: Apartment? = Apartment(dong: 101, ho: 702) let kim: Person? = Person(name: "kim") Optional? 옵셔널은 변수의 값의 nil 일수 있다는 것을 표현합니다. 그말인즉슨... 변수가 가변형일때 값이 부재할 수 있다는것을 표현하는 것이죠. 반대로 논-옵셔널의 경우에는 변수가 nil일 수 없다는것을 표현하겠죠? 따로 옵셔널 표현을 쓰지 않았다면, 기본값은 논-옵셔널입니다. nil에 대한 예외처리를 강제해 틈만나면 나타나서 괴롭히는 null 에러를 사전에 예방할 수 있다는게 큰 장점인거 같습니다. 예를 들면, swift는 키보드입력값에 바인..

    Swift의 조건문

    Swift의 조건문

    Swift의 조건문은 if-sele와 switch-case문으로 나뉩니다. if-else 구문 if-eles구문의 형태 및 사용 java와 동일한 if-else 구조를 가집니다. 단, 조건값을 감싸는 소괄호는 선택사항인 점이 다릅니다. 기본 형태 //조건은 항상 Bool 타입이 와야 함. if 조건 { // if 조건에 만족시 실행 } else if 조건 { // if 조건에 해당하지 않고 else if 만족시 실행 } else { // if, else if 조건에 모두 해당하지 않을때 실행 } 간단한 사용 예제 let priceOfApple = 4000 let priceOfBanana = 3000 if priceOfApple > priceOfBanana { print("사과는 바나나보다 비쌉니다.") ..