🍏(115)
-
[Swift] (기초) Extension / 익스텐션
:: 익스텐션 :: 1. 익스텐션 익스텐션(Extension) 은 스위프트의 강력한 기능 중 하나입니다. 익스텐션은 구조체, 클래스, 열거형, 프로토콜 타입에 새로운 기능을 추가 할 수 있는 기능입니다. 기능을 추가하려는 타입의 구현된 소스 코드를 알지 못하거나 볼 수 없다 해도, 타입만 알고 있다면 그 타입의 기능을 확장할 수도 있습니다. 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티 타입 메서드 / 인스턴스 메서드 이니셜라이저 서브스크립트 중첩 타입 특정 프로토콜을 준수할 수 있도록 기능 추가 ** 익스텐션은 타입에 새로운 기능을 추가할 수는 있지만, 기존에 존재하는 기능을 재정의할 수는 없습니다. 이 둘은 비슷해보이지만 실제 성격은 많이 다릅니다. 클래스의 상속은 클래스 타입에서만 가능하지만 익스텐..
2021.09.11 -
[Swift]Swift 요약 정리 /초보자를 위한 코테 / 코딩테스트 / 요약 / 총 정리 / 기초 정리 / 코테 입문
알고리즘 코딩 테스트를 위한 Swift 요약 정리 입력(Input) Line 단위로 읽어오기. 1 let value = readLine() Line단위로 읽어오는데, 공백(Space)으로 구분되어 있는 입력 ex) Input = 1 2 3 4 1 2 let nums = readLine()!.split(seperator:" ") // String.SubSequence Type [map]으로 커버 가능 let nums = readLine()!.components(seperatedBy:" ") // String Type [import Foundation] 필수. 입력을 split을 사용하여 받아온다면 mapping으로 변수를 사용할 수 있다. 다른 방법으로는 components를 사용하는 방법이 있는데, co..
2021.09.02 -
[Swift] (기초) Protocol / 프로토콜
프로토콜은 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진을 정의합니다. 구조체, 클래스, 열거형은 프로토콜을 채택 해서 특정 기능을 수행하기 위한 프로토콜의 요구사항을 실제로 구현 할 수 있습니다. 어떤 프로토콜의 요구사항을 모두 따르는 타입은 그 프로토콜을 준수한다고 표현합니다. 타입에서 프로토콜의 요구사항을 충족시키려면 프로토콜이 제시하는 청사진의 기능을 모두 구현해야합니다. 즉 프로토콜은 기능을 정의하고 제시 할 뿐이지 스스로 기능을 구현 하지는 않습니다. /*프로토콜*/ //프로토콜은 특정 역할을 수행하기 위한 //메서드, 프로퍼티, 이니셜라이저 등의 요구사항을 정의합니다. //구조체, 클래스, 열거형은 프로토콜을 채택(Adopted)해서 프로토콜의 요구사항을 실제로 구..
2021.09.01 -
[Swift] (기초) Assert & Guard / Assertion / Early Exit / Guard
/* assert와 guard*/ // 애플리케이션이 동작 도중에 생성하는 다양한 결과값을 동적으로 확인하고 안전하게 처리할 수 있도록 //확인하고 빠르게 처리 할 수 있습니다. //Assertion //assert(_:_:file:line:)함수를 사용합니다 //assert 함수는 디버깅 모드에서만 동작합니다 //배포하는 애플리케이션에서는 제외됩니다 //주로 디버깅 중 조건의 검증을 위하여 사용합니다. var someInt: Int = 0 assert(someInt == 0, "someInt != 0") //someInt = 1 //assert(someInt == 0) // 동작 중지, 검증 실패 //assert(someInt == 0, "someInt != 0")//동작 중지, 검증 실패 //asse..
2021.09.01 -
[Swift] (기초) Type Casting / 타입 캐스팅 / 다운 캐스팅 / 업 캐스팅
/* 타입 캐스팅 */ // 스위프트의 타입캐스팅은 // 인스턴스의 타입을 확인하는 용도 // 또는 클래스의 인스턴스를 // 부모 혹은 자식 클래스의 타입으로 사용할 수 있는지 // 확인하는 용도로 사용합니다. // is, as를 사용합니다 let someInt: Int = 100 let someDouble: Double = Double(someInt) // double type의 인스턴스를 하나 더 생성을 해준것. 타입캐스팅 x class Person { var name: String = "" func breath(){ print("숨을 쉽니다") } } class Student: Person{ var school: String = "" func goToSchoo() { print("등교를 합니다") ..
2021.09.01