인스턴스 (instance) Swift 에서는 클래스 / 구조체 / 열거형에서 생성된 객체를 '인스턴스'라고 지칭한다. var Seungchan:Person = Person(); 프로퍼티 (Property) Swift 에서는 클래스, 구조체, 열거형과 연관되어 있는 정보 / 값 등을 의미한다. struct FixedLengthRange { var firstValue: Int var length: Int } 메서드 (Method) Swift 에서는 클래스, 구조체, 열거형과 관련된 함수라는 의미로 사용한다. class SomeClass { func simpleMethod() { print("Simple Method") } func sum(a: Int, b: Int) -> Int { return a + b ..
열거형 유사한 종류의 여러 값을 한 곳에 모아서 정의 enum 자체가 하나의 데이터 타입으로, 대문자 카멜케이스를 사용하여 이름을 정의 각 case는 소문자 카멜케이스로 정의 각 case는 그 자체가 고유의 값 각 case는 한 줄에 개별로도, 한 줄에 여러개도 정의 가능 enum 이름 { case 이름1 case 이름2 case 이름3, 이름4, 이름5 // ... } // 예제 enum BoostCamp { case iosCamp case androidCamp case webCamp } 열거형 사용 타입이 명확할 경우, 열거형의 이름을 생략 할 수 있다. switch 구문에서 사용하면 좋다. enum Weekday { case mon case tue case wed case thu, fri, sat,..
클래스 클래스는 참조 타입이다. 타입이름은 대문자 카멜케이스를 사용하여 정의한다. Swift의 클래스는 다중 상속이 되지 않는다. class 이름 { /* 구현부 */ } 프로퍼티 및 메서드 구현 class Sample { // 가변 프로퍼티 var mutableProperty: Int = 100 // 불변 프로퍼티 let immutableProperty: Int = 100 // 타입 프로퍼티 static var typeProperty: Int = 100 // 인스턴스 메서드 func instanceMethod() { print("instance method") } // 타입 메서드 // 상속시 재정의 불가 타입 메서드 - static static func typeMethod() { print("type..
구조체 스위프트 대부분 타입은 구조체로 이루어져 있다. 구조체는 값(value) 타입이다. 타입이름은 대문자 카멜케이스를 사용하여 정의 구조체 문법 struct 이름 { /* 구현부 */ } 구조체 프로퍼티 및 메서드 구현 struct Sample { // 가변 프로퍼티(값 변경 가능) var mutableProperty: Int = 100 // 불변 프로퍼티(값 변경 불가능) let immutableProperty: Int = 100 // 타입 프로퍼티(static 키워드 사용 : 타입 자체가 사용하는 프로퍼티) static var typeProperty: Int = 100 // 인스턴스 메서드(인스턴스가 사용하는 메서드) func instanceMethod() { print("instance meth..

싱글턴 (Singleton) 싱글턴은 '특정 클래스의 인스턴스가 오직 하나임을 보장하는 객체'를 의미한다. 싱글턴은 애플리케이션이 요청한 횟수와는 관계없이 이미 생성된 같은 인스턴스를 반환한다. 즉, 애플리케이션 내에서 특정 클래스의 인스턴스가 딱 하나만 있기 때문에 다른 인스턴스들이 공유해서 사용할 수 있다. Cocoa 프레임워크에서의 싱글턴 디자인 패턴 Cocoa 프레임워크에서 싱글턴 디자인 패턴을 활용하는 대표적인 클래스를 소개합니다. 싱글턴 인스턴스를 반환하는 팩토리 메서드나 프로퍼티는 일반적으로 shared라는 이름을 사용합니다. FileManager 애플리케이션 파일 시스템을 관리하는 클래스입니다. FileManager.default URLSession URL 세션을 관리하는 클래스입니다. U..

Delegation Desgin Pattern 델리게이션 디자인 패턴은 하나의 객체가 다른 객체를 대신해 동작 또는 조정할 수 있는 기능을 제공 델리게이션 디자인 패턴은 Foundation, UIKit, AppKit 그리고 Cocoa Touch 등 애플의 프레임워크에서 광범위하게 활용 주로 프레임워크 객체가 위임을 요청하며, 프로그래머가 작성하는 커스텀 컨트롤러 객체가 위임을 받아 특정 이벤트에 대한 기능을 구현 델리게이션 디자인 패턴은 커스텀 컨트롤러에서 세부 동작을 구현함으로써 동일한 동작에 대해 다양한 대응을 할 수 있게 한다. UITextFieldDelegate // 대리자에게 특정 텍스트 필드의 문구를 편집해도 되는지 묻는 메서드 func textFieldShouldBeginEditing(UIT..

스토리보드에서 1. Custom Class를 지정하고, 2. Identity 에서 Storyboard ID 를 지정하였는데 이런 에러가 발생했다. 평소 에러없이 사용하던 부분에서 이런 에러가 발생해서 당황을 하고 구글링을 해보았는데 Is initial View Controller 를 체크 안해서 그렇다.. identifier 을 지정 안해줘서 그렇다 .. 의 원인을 찾을 수 있었다. 하지만 위에 나온 원인들 모두 이상없이 잘 되어 있었다... 그래서 어떻게 해결했냐면,,? 요렇게 Resource 폴더에 Constants 폴더를 생성하고 그 안에 Const.swift / Storyboard.swift / ViewController.swift를 만들어 주었다. // // Const.swift // // Cr..
Swift 공부하면서 기본 문법이 정리가 잘 되어 있지 않다고 생각해서,, 강의를 들으면서 정리를 해보려고 한다. ㅎㅇㅌ! 이름짓기 규칙 Lower Camel Case: function, method, variable, constant Upper Camel Case: type(class, struct, enum, extenstion) 대소문자를 구분 ! 콘솔로그 print : 단순 문자열 출력 dump : 인스턴스의 자세한 설명(description 프로퍼티) 까지 출력 문자열 보간법 String inetrpolation 프로그램 실행 중 문자열 내에 변수 또는 상수의 실질적인 값을 표현하기 위해 사용 \() 상수와 변수 //상수, 변수의 선언 //상수 선언 키워드 let //변수 선언 키워드 var /..

상황이 .. 어떠했냐..면.. 경 ,, 작업하다가 BoostCourse_Example2 엑코 파일이 개꼬여서 지우고,, 다시 똑같은 이름으로 엑코를 만들고,, 작업하다가 시뮬레이터 & 계정 에러가 떠서 ,, 야무지게 해결하다가 탈모 올거 같아서 ,, 도저히 안돼서 얘도 지우고 BoostCourse_Week2 라는 새로운 엑코 파일을 만들어서 야무지게 작업을 해씸더 ㅋㅋ 근데 ㅋㅋ Fork 에서 커밋하고 푸쉬하려고 하니까 ,, 또 안되더라구요 ,,? 그래서 무지성으로 깃헙가서 레포지토리를 지웠더니, , 잔디밭이 ,, 야무지게 예초를 당해서 1,2,3 차 멘붕이 같이 왔어요,, 바로 구글링 해봤더니 한시간뒤에 복구 가능하다고 해서 기다리다가 복구를 해씀더 얏호 ㅋㅋ 다시 git clone ~ 해서 연결을 하..

"Sopt 28th 세미나 뷰의 전환" 부분에서 네비게이션과 모달을 다뤘지만 조금 더 자세하게 알아보겠다 ..! 네비게이션 컨트롤러는 컨테이너 뷰 컨트롤러로써 내비게이션 스택을 사용하여 다른 뷰 컨트롤러를 관리한다 ! 여기서 내비게이션 스택에 담겨서 콘텐츠를 보여주게 되는 뷰 컨트롤러들을 컨텐트 뷰 컨트롤러라고 한다. 내비게이션 컨트롤러는 두 개의 뷰를 화면에 표시한다. 하나는 내비게이션 스택뷰에 포함된 최상위 컨텐트 뷰 컨트롤러의 콘텐츠를 나타내는 뷰와 내비게이션 컨트롤러가 직접 관리하는 뷰 (navigation bar / tool bar) 가 있다. 추가로 내비게이션 인터페이스의 변화에 따른 특정 액션을 동작하도록 하기 위해 내비게이션 델리게이트 객체를 사용할 수 있다. 내비게이션 스택이란 ? 내비게..