전체 글

전체 글

    IOS 스위프트(Swift) 문법 - 옵셔널 체이닝

    옵셔널 체이닝이란? 옵셔널에 속해있는 nil 일지도 모르는 프로퍼티, 메서드, 서브스크립션 등을 가져오거나 호출할 때 사용할 수 있는 일련의 과정입니다. struct Developer { let name: String } struct Company { let name: String var developer: Developer? } var developer = Developer(name: "han") //Developer var company = Company(name: "Gunter", developer: developer) //Company print(company.developer) //"Optional(__lldb_expr_41.Developer(name: "han"))\n" print(compan..

    IOS 스위프트(Swift) 문법 - 열거형

    열거형이란? 연관성이 있는 값을 모아 놓은 것을 말합니다. enum CompassPoint { //case north, south, east, west 한줄로 사용할 수 있음 case north case south case east case west } var direction = CompassPoint.east //east direction = .west //west //switch구문과 함꼐 사용 switch direction { case .north: print("north") case .south: print("south") case .east: print("east") case .west: print("west") //"west/n" } // enum CompassPoint: String { /..

    IOS 스위프트(Swift) 문법 - 익스텐션

    익스텐션이란? 기존의 클래스, 구조체 , 열거형, 프로토콜에 새로운 기능을 추가하는 기능 익스텐션이 타입에 추가할 수 있는 기능 - 연산 타입 프로퍼티 / 연산 인스턴스 프로퍼티 - 타입 메서드 / 인스턴스 메서드 - 이니셜라이저 - 서브스크립트 - 중첩 타입 - 특정 프로토콜을 준수할 수 있도록 기능 추가 /* extension SomeType { //추가 기능 } */ extension Int { var isEven: Bool { return self % 2 == 0 } var isOdd: Bool { return self % 2 == 1 } } var number = 3 number.isOdd number.isEven extension String { func convertToInt() -> Int..

    IOS 스위프트(Swift) 문법 - 프로토콜

    프로토콜이란? 특정 역할을 하기 위한 메서드, 프로퍼티, 기타 요구사항 등의 청사진 /* protocol 이름 { } */ protocol SomeProtocol { } protocol SomeProtocol2 { } struct SomeStructure: SomeProtocol,SomeProtocol2 { } /* class SomeClass: SomeSuperclass, FirtstProtocol, AnotherProtocol { } */ protocol FirstProtocol { var name: Int { get set } var age: Int { get } } protocol AnotherProtocol { static var someTypeProperty: Int { get set } } ..

    IOS 스위프트(Swift) 문법 - assert와 guard

    assert란? - 특정 조건을 체크하고, 조건이 성립되지 않으면 메세지를 출력하게 할수 있는 함수 - assert 함수는 디버깅 모드에서만 동작하고 주로 디버깅 중 조건의 검증을 위하여 사용합니다. guard 문이란? - 뭔가를 검사하여 그 다음에 오는 코드를 실행할지 말지 결정하는 것 - guard 문에 주어진 조건문이 거짓일 때 구문이 실행됨 var value = 0 assert(value == 0) value = 2 assert(value == 0, "값이 0이 아닙니다") -> __lldb_expr_10/MyPlayground.playground:7: Assertion failed: 값이 0이 아닙니다 Playground execution failed: error: Execution was in..

    자바스크립트(Javascript) 순서도를 그리는 이유

    프로그래밍에서는 절차가 매우 중요합니다. 코드를 에디터에 입력하기 전에 내가 만들 프로그램이 어떤 절차로 돌아갈지 미리 생각해야 합니다. 예를 들어 끝말잇기가 어떤 식으로 진행되는지 말로 설명을 해봤습니다. 최대한 구체적으로 순서를 말할 수 있으면 더 좋습니다. 1. 세 명의 참가자가 있습니다(여기서는 A, B ,C라는 사람이 있다고 가정). 2. A가 '자바스크립트'라고 말했습니다. 3. B가 '트집'이라고 말했습니다. 4. C가 '집합'이라고 말했습니다. 5. 다시 A가 '합체'라고 말했습니다. 6. B가 ... 7. 무한반복 다시 참가를 4명으로 늘려봅시다. 1. 네 명의 참가자가 있습니다(여기서는 A, B ,C, D라는 사람이 있다고 가정). 2. A가 '자바스크립트'라고 말했습니다. 3. B가 ..

    IOS 스위프트(Swift) 문법 - 타입캐스팅

    타입 캐스팅이란? 인스턴스의 타입을 확인하거나 어떠한 클래스의 인스턴스를 해당 클래스 계층 구조의 슈퍼 클래스나 서브 클래스로 취급하는 방법입니다. 타입 캐스팅 연산자로 is, as를 이용하여 구성합니다. class MediaItem { var name: String init(name: String) { self.name = name } } class Movie: MediaItem { var director: String init(name: String, director: String) { self.director = director super.init(name: name) } } class Song: MediaItem { var artist: String init(name: String, artist:..

    IOS 스위프트(Swift) 문법 - 상속

    상속이란? 부모가 자식에게 재산을 물려주는 행위입니다. class Vehicle { var currentSpeed = 0.0 var description: String { return "traveling at \(currentSpeed) miles per hour" //"traveling at 30.0 miles per hour in gear 2" } func makeNoise() { print("speaker on") //"speaker on" } } /* class 클래스 이름: 부모클래스 이름 { //하위 클래스 정의 } */ class Bicycle: Vehicle { var hasBasket = false } var bicycle = Bicycle() //Bicycle bicycle.curren..