본문 바로가기

swift7

화면 전환 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.