1. 메인 스토리보드 -> TableView 추가 2. Cocoa Touch Class -> TableViewCell 추가 (Also create Xib file 체크) 3. Xib 파일에서 Cell Custom 4. Xib -> Custom Class 에서는 이미 Class가 연결돼 있어서 따로 안 건드려도 된다. 5. @IBOutlet // @IBAction 을 연결해주고 6. identifier 연결해주기 (제일 중요 ! ) 부가 설명을 하자면, xib파일에서 cell을 클릭해주고 Identifier 지정해주면 된다.. ! 7. 다시 메인 스토리보드에 가서 생성한 TableView를 뷰컨에다가 연결 8. UITableViewDelegate, UITableViewDataSource 채택 ! 9. 대리..
클로저 { (parameters) -> return type in statements } { (매개변수 목록) -> 반환타입 in 실행 코드 } 클로저는 일급 시민으로 변수, 상수 등으로 저장, 전달 인자로 저장이 가능한 형태 ! * 일급 객체의 특징 1. 모든 일급 객체는 함수의 실질적인 매개 변수가 될 수 있다. 2. 모든 일급 객체는 함수의 반환값이 될 수 있다. 3. 모든 일급 객체는 할당의 대사이 될 수 있다. 4. 모든 일급 객체는 비교 연산 (==, equal)을 적용할 수 있다. 우리가 사용했던 함수들은 모두 "이름 있는 클로저" 형태라고 생각하면 된다. 함수로 작성했던 것들 모두 (이름없는 함수인) 클로저로 표현이 가능 // 함수 (이름있는 클로저) 사용 func sumFunction(a..
구조체와 클래스의 공통점 프로퍼티와 메서드를 사용해서 구조화된 데이터와 기능을 가진다. 새로운 사용자 지정 타입을 만들어 준다. 초기화 Init을 정의해서 초기 상태를 설정 할 수 있다. 확장(extension)이 가능하다. 프로퍼티값에 접근할 때 점(.)을 사용한다. 프로토콜 사용이 가능하다 다음 조건 중 1개 이상을 만족하면 구조체의 주 목적이 관계된 간단한 값을 캡슐화 하기 원할 때 구조체의 인스터스가 참조되기 보다 복사되기를 원할 때 구조체가 프로퍼티나 메소드 등을 상속 할 필요가 없는 경우 구조체를 사용 ! ! // struct struct ValueType { var property = 1 } // class class ReferenceType { var property = 1 } let fi..
인스턴스 (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..