본문 바로가기

iOS9

화면 전환 1. 프레젠테이션 방식으로 화면 전환 present(, animated:, completion:) 프레젠테이션 체인(Presentation Chain)에 뷰 컨트롤러의 포인터가 차례로 저장됨 presentedViewController : 자신이 호출한 ViewController presentingViewController : 자신을 호출한 ViewController dismiss(animated:, completion:) ※ 주의 ※ 화면이 사라지게 처리하는 것은 사라질 화면의 뷰 컨트롤러 자신이 아니라 자신을 띄우고 있는 이전 뷰 컨트롤러다. self.dismiss(animated:) X (원래는 안되지만 잘 동작한다. 많은 개발자들이 그냥 사용하고 있다.) self.presentingViewContr.. 2019. 10. 1.
Xcode10 스토리보드 살펴보기 1. 인터페이스 빌더 살펴보기 보조 에디터(Assistant Editor) 및 커넥션 인스팩터 (Connections Inspector) 아이덴티티 인스팩터 (Identity Inspector) 사이즈 인스팩터 (Size Inspector) 속성 인스팩터 (Attributes Inspector) 2. IBOulet, IBAction (인터페이스 빌더 어노테이션) @IBOulet (아울렛 변수) - 화면상의 객체를 소스 코드에서 참조하기 위해 사용하는 어노테이션 @IBAction (액션 메소드) - 객체의 이벤트를 제어할 때 사용하는 어노테이션 3. 인터페이스 빌더 객체와 클래스 연결 보조 에디터(Assistant Editor)를 활용한 연결 - 인터페이스 빌더에서 보조 에디터로 연결 - 새로 작성하면서 .. 2019. 9. 25.
iOS앱의 구조 1. 앱이 실행되는 과정 1. main() 함수 실행 (해당 파일은 이제 확인 불가) #import #import "AppDelegate.h" int main(int argc, char * argv[]) { @autoreleasepool { return UIApplicationMain(argc, argv, nil, NSStringFromClass([AppDelegate class])); } } 2. UIApplicationMain() 함수 호출 (@UIApplicataionMain) import UIKit @UIApplicationMain class AppDelegate: UIResponder, UIApplicationDelegate { var window: UIWindow? func applicatio.. 2019. 9. 22.
6. 구조체와 클래스 6. 구조체와 클래스 1) 구조체VS클래스 공통점 프로퍼티 메소드 서브스크립트 초기화 블록 확장 프로토콜 변수나 상수를 사용하여 값을 저장하는 프로퍼티를 정의할 수 있다. 함수를 사용하여 기능을 제공하는 메소드를 정의할 수 있다. 속성값에 접근할 수 있는 방법을 제공하는 서브스크립트를 정의할 수 있다. 객체를 원하는 초기 상태로 설정해주는 초기화 블록을 정의할 수 있다. 객체에 함수적 기능을 추가하는 확장(extends) 구문을 사용할 수 있다. 특정 형식의 함수적 표준을 제공하기 위한 프로토콜을 구현할 수 있다. 클래스만 가지고 있는 기능들 상속 타입 캐스팅 소멸화 구문 참조에 의한 전달 클래스의 특성을 다른 클래스에서 물려줄 수 있다. 실행 시 컴파일러가 클래스 인스턴스의 타입을 미리 파악하고 검사할.. 2019. 9. 21.
5. 클로저 & 일급 객체 함수 5. 클로저(Clousure) 컴퓨터 언어에서 클로저(Closure)는 일급 객체 함수(first-class functions)의 개념을 이용하여 스코프(scope)에 묶인 변수를 바인딩 하기 위한 일종의 기술이다. 기능상으로, 클로저는 함수를 저장한 레코드(record)이며, 스코프(scope)의 인수(Factor)들은 클로저가 만들어질 때 정의(define)되며, 스코프 내의 영역이 소멸(remove)되었어도 그에 대한 접근(access)은 독립된 복사본인 클로저를 통해 이루어질 수 있다. ※ 참조 https://ko.wikipedia.org/wiki/%ED%81%B4%EB%A1%9C%EC%A0%80_(%EC%BB%B4%ED%93%A8%ED%84%B0_%ED%94%84%EB%A1%9C%EA%B7%B8.. 2019. 9. 20.
4. 함수(Function) 4. 함수(Function) 스위프트는 함수형 프로그래밍 패러다임을 채택하고 있는 언어이므로 함수형 프로그래밍의 특성을 이해하는 것이 매우 중요 func 함수이름(매개변수1: 타입, 매개변수2: 타입, ...) -> 반환타입 { 실행내용 return 반환값 } 함수의 식별자 - 함수이름(매개변수1:매개변수2:) 함수의 호출 func increment(amount: Int, times: Int) { print(amount * times) } 함수의 식별자 - increment(amount:times:) increment(amount: 5, times: 2) (Objective-C 메소드 호출 방식의 API를 수정 없이 그대로 사용하기 위해 최대한 형식을 맞춘 결과, 지금과 같은 독특한 문법이 만들어짐) O.. 2019. 9. 19.
3. 옵셔널 (Optional) 3. 옵셔널 (Optional) - 스위프트에 도입된 새로운 개념으로 언어 차원에서 프로그램의 안전성을 높이기 위해 사용하는 개념 - nil을 사용할 수 있는 타입과 사용할 수 없는 타입을 구분 - nil이란 값이 없음을 의미하는 특수한 값 var optInt: Int? optInt = 3 옵셔널 해제 및 옵셔널 바인딩 1) if 조건 사용 func intStr(str: String) { if let intFromStr = Int(str) { print("값이 변환되었습니다. 변환된 값은 \(intFromStr)입니다") } else { print("값 변환에 실패하였습니다") } } 2) guard 구문 사용 func intStr(str: String) { guard let intFromStr = In.. 2019. 9. 18.
2. 집단 자료형(Collective Types) 2. 집단 자료형(Collective Types) 배열(Array) 일련번호로 구분되는 순서에 따라 데이터가 정렬된 목록 형태 집합(Set) 중복되지 않은 유일 데이터들이 순서 없이 모인 집합 형태 튜플(Tuple) 종류에 상관없이 데이터들을 모은 자료형. 값을 변경할 수 없음 딕션너리(Dictionary) 키-값으로 연관된 데이터들이 순서 없이 모인 자료형 1) 배열(Array) 정적 선언 var countries = ["korea", "japan", "china"] as Array var countries = ["korea", "japan", "china"] as [String] var countries: Array = ["korea", "japan", "china"] var countries: [S.. 2019. 9. 17.