Type Casting(타입 캐스팅) 사용법 & 예제 Type Casting(타입 캐스팅) 이란? 인스턴스의 타입을 확인 하거나, 인스턴스의 타입을 슈퍼 클래스 혹은 서브 클래스타입처럼 다루기 위해 사용합니다. Swift에서의 타입 캐스팅은 ‘is’ 와 ’as’ 라는 연산자로 구현할 수 있으며, 이 두 연산자는 값의 타입을 확인하거나 다른 타입으로 변환하는 간단한 방법을 제공합니다. 사용 예제 Defining a Class Hierarchy for Type Casting [예제1] 타입 캐스팅을 활용하여 특정 클래스 인스턴스의 타입을 확인 class Person { var name: String //초기값이 업으므로 init 만들어준다 init(name: String) { self.name = name ..
Clousure(클로저) 사용법 & 예제 Clousure(클로저)란? 비교적 짧고 독립적인 코드 조각, 자바에서는 ‘람다’라고도 불림 함수와 클로저는 서로 완전히 호환된다. 3가지 종류의 클로저가 있다. { (parameters) -> ReturnType in statements } { statements } 사용 예제 클로저 표현식 let c = { print("Hello, Swift") } // 파라미터가 없고 리턴형 없는 Closure c() //in으로 Closure Head , Body 구분 let c2 = { (str: String) -> String in return "Hello, \(str)" } let result = c2("Closure") //Closure에서는 Argument lab..
Method and Subscript 사용법 & 예제 [2/2] Subscript란? 클래스, 구조 그리고 열거형은 서브스크립트를 정의할 수 있는데 컬렉션, 리스트 또는 순열의 멤버 항목에 접근하기 위한 단축키임. 서브스크립트를 사용하여 설정과 검색을 위해 메소드를 나눌 필요 없이 인덱스로 값을 설정하고 검색함. 예를 들어 someArray[index]로 배열 인스턴스 항목과 someDictionary[key]로 딕셔너리 인스턴스 항목을 접근할 수 있음. 파라미터의 형식과 수에는 제한이 없으나 많아야 2개가 일반적 가변 파라미터 가능, 파라미터의 기본값 지정 불가능 값을 받아야 하기 때문에 리턴형 생략 불가능 get은 필수, set은 생략 가능 subscript(parameters) -> R..
Initializers (생성자) 를 사용하는 이유 구조체 / 열거형 / 클래스와 같은 설계도를 기반으로 생성한 것을 ‘ 인스턴스’ 라고 합니다. 이 때 인스턴스의 초기화를 담당하는 것이 ‘생성자’ 입니다. 초기화를 사용하는 이유는 모든 속성을 기본값으로 초기화 해서 인스턴스를 기본값 상태를 만들기 위해서입니다. 확인은 생성자 실행 되었을때 모든 속성이 기본값을 가지고 있다는 뜻 입니다. (기본 값 없으면 초기화 실패) Default Initializer 아래와 같이 모든 속성이 초기화 되어 있을 경우 컴파일러가 기본 생성자를 생성해 주기 때문에 따로 작성 할 필요 가 없다. class Position { var x = 0.0 // 속성이 항상 동일한 값으로 초기화 될때 사용 하는 방법 var y = 0..
제네릭 (Generics Function)이란? 형식에 의존하지 않는 범용 코드 사용 코드의 재사용, 유지보수 용이 코드(예시) & 설명 Generic Function //두형식이 모두 INT여야 한다. //다른 형식이 필요하다면 개별적으로 만들어야 한다. -> 함수 구현 중복 func swapInteger(lhs: inout Int, rhs: inout Int) { let tmp = lhs lhs = rhs rhs = tmp } var a = 10 var b = 20 swapInteger(lhs: &a, rhs: &b) a b //Generic Function 사용하여 해결 -> 코드 작성량 비약적 감소 //T는 새로운 형식이 아니라 문맥에 따라 실제 형식으로 대체되는 place holder일 뿐이다 ..
ToDo App 구현 알람 앱, 메모장 등 자주 사용하게 되는 '목록' 기능을 구현 하였습니다. Table View Controller를 이용하여 구현 하였고 항목을 추가, 삭제, 정렬 조정 기능을 구현하였습니다. 결과 화면 스토리 보드 TableViewController.swift (메인화면 - 목록 List) import UIKit // 앱 시작 시 기본적으로 나타낼 목록 var items = ["책 구매", "철수와 약속", "스터디 준비하기"] var itemsImageFile = ["cart.png", "clock.png", "pencil.png"] class TableViewController: UITableViewController { @IBOutlet var tvListView: UITab..
스택 ( Stack )_자료구조(DataStructure_Swift) 스택이란 무엇인가? 스택은 ‘어떤 것을 쌓는’ 인간의 활동을 컴퓨터에서 표현한 것 상자를 쌓는 것에 비유한다면, 그 상자가 스택구조의 ‘아이템’이된다 쌓은 상자를 옮긴다면 맨 위의 상자부터 옮긴다 즉, 상자가 들어온 순서대로 쌓이고 마지막부터 빠지는 원리 -> LIFO (Last In - Fist Out) 나중에 들어온 것이 먼저 빠진다 IOS 프로그래밍에서는 navigation controller 에서 stack 사용한다 스택의 종류 Push : 스택의 맨 위에 데이터를 ‘쌓는’ 것 Pop : 스택의 맨 위의 데이터를 ‘빼는’ 것 Push 구현 public struct Stack { //MARK: storage : 쌓여있는 것들을 배..