개발
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..
IOS 스위프트(Swift) 문법 - 클래스와 구조체의 차이
1. 클래스와 구조체의 공통점 - 값을 저장할 프로퍼티를 선언할 수 있습니다. - 함수적 기능을 하는 메서드를 선언할 수 있습니다. - 내부 값에 . 을 사용하여 접근할 수 있습니다. - 생성자를 사용해 초기 상태를 설정할 수 있습니다. - extension을 사용하여 기능을 확장할 수 있습니다. - Protocol을 채택하여 기능을 설정할 수 있습니다. 2.클래스와 구조체의 차이점 2-1. 클래스 - 참조 타입입니다. - ARC로 메모리를 관리합니다. - 상속이 가능합니다. - 타입 캐스팅을 통해 런타임에서 클래스 인스턴스의 타입을 확인할 수 있습니다. - deinitdㅡㄹ 사용하여 클래스 인스턴스의 메모리 할당을 해제할 수 있습니다. -같은 클래스 인스턴스를 여러 개의 변수에 할당한 뒤 값을 변경 시..
IOS 스위프트(Swift) 문법 - 프로퍼티
Properties(프로퍼티) 란? 클래스, 구조체 또는 열거형 등에 관련된 값을 뜻한다. 프로퍼티는 세가지 종류가 있습니다. 저장 프로퍼티 - 인스턴스의 변수 또는 상수를 의미 연산 프로퍼티 - 값을 저장하는 것이 아니라 특정 연산을 실행하는 결과 값을 의미 타입 프로퍼티 - 특정 인스턴스에서 사용되는 것이 아닌 특정 타입에서 사용되는 프로퍼티 //저장프로퍼티 struct Dog { var name: String var gender: String } var dog = Dog(name: "gunter", gender: "Male") //Dog print(dog) //"Dog(name: "gunter", gender: "Male")\n" dog.name = "홍길동" //Dog let dog2 = Dog..