분류 전체보기 333

TIL 7.2

뷰 컨트롤러 - 2가지로 나눔. 1) 콘텐츠 뷰 컨트롤러 2) 컨테이너 뷰 컨트롤러 1) 콘텐츠 뷰 컨트롤러 이미지, 텍스트 또는 버튼이나 입력폼 등 애플리케이션의 화면에 표현할 콘텐츠를 관리하는 컨트롤러. 화면 전체 사이즈의 루트 뷰를 내장. 이 뷰 위에 각종 콘텐츠를 얹어 화면에 출력. 콘텐츠 뷰 컨트롤러를 정의하는 기본 클래스 : UIViewController. 주된임무: 뷰를 관리, 이벤트를 핸들링, 화면 전환. 커스텀 뷰 컨트롤러를 정의할 때: 기본 화면 구조를 어떻게 설계할것인가에 따라 상속받을 부모 클래스를 적절히 선택해야 함. ex) 테이블 뷰 컨트롤러, 컬렉션 뷰 컨트롤러, 스크롤 뷰 컨트롤러, 일반 뷰 컨트롤러(UIViewController) 들 중 하나를 선택하여 상속.(서브 클래싱)..

TIL 6.30

데이터모델 (도메인 모델). 앱의 핵심 데이터 형식을 정의하는 객체 : 사용자가 입력한 데이터를 저장하고 이를 목록이나 상세화면에 출력할 수 있도록 데이터 소스 역할을 하는 객체. 딱히 형식이 있지는 않고, 주로 클래스로 정의. or 단위 데이터를 이루는 여러 속성을 프로퍼티로 선언하는 것이 일반적. 오늘 메모앱의 경우 MemoData.swift -> 데이터식별값, 메모제목, 내용, 이미지, 작성일 담는 파일 = 데이터모델 *Appdelegate는 앱 자체의 생명주기와 운명을 함께 한다. 앱이 생성될 때 함께 생성되었다가, 앱이 소멸될 때 함께 소멸됨. 한번 생성되면 앱이 종료되기전까지는 계속 유지된다. 따라서 앱이 사용할 데이터를 여기에 저장해두면 데이터의 유실을 걱정하지 않아도 된다. Appdeleg..

TIL 6.29 정리

오늘 공부한 것 짧게 정리 Git 관련 -branch . 클론 기능 있음, 새로운 내용으로 넘어갈 때 checkout 기존껀 다 지워짐. 근데 내가 그냥 터미널에서 하는게 쉬운 것 같다. -Git 관련 커밋: 내가 쓴 코딩 내용 수정 업데이트: 다른 사람이 쓴 코딩 내용에 내꺼를 추가 -오토레이아웃: UI 각 요소의 상하좌우 간격, 폭, 높이에 대한 제약 조건을 서술형으로 정의 ex) UI요소 A 는 화면 가장자리로부터 20포인트만큼 마진을 가진다 또는 요소 x 는 요소 y 와 동일한 폭을 유지한다. -Aspect ratio (종횡비) : 폭이나 높이 중 어느 한 쪽이 결정 되면 나머지 한쪽은 그 비율에 맞추는 제약 조건. -오토레이아웃에서 제약 조건 설정하는 방법 3가지 1) 오른쪽 아래 제약 조건 설..

iOS swift WKWebView

WKWebView load(:_)메소드 요청된 정보를 바탕으로 HTML파일을 읽어들이는 메소드. 웹페이지를 로딩하는 메소드 이 메소드는 인자값으로 URLRequest 객체를 입력받는다. 웹 페이지를 요청하기 위한 조건이 정의된 객체. 이 인자값의 정보를 바탕으로 iOS는 네트워크상에 있는 웹 서버에서 웹 페이지를 읽어들임. 네트워크 상에 있는 웹 페이지만을 대상으로 하므로, 앱 내부에 저장된 로컬 HTML파일을 읽어들일 수 는 없다. 만약 앱 내부에 저장된 로컬 HTML을 읽어들이고자 한다면, loadHTMLString(_:baseURL:)메소드를 사용해야 한다. load(_:)는 비동기 메소드. 따라서 웹페이지를 완전히 다 읽어들일 때까지 다른 프로그래밍 코드의 실행을 모두 차단하는 블로킹 현상이 발생..

iOS swift <집단자료형> - 배열

배열 -배열에 저장할 아이템의 타입에는 제약이 없지만, 하나의 배열에 저장하는 아이템 타입은 모두 같아야 함. -선언 시 배열에 저장할 아이템 타입을 명확히 정의해야 함 -배열의 크기는 동적으로 확장할 수 없다. 스위프트에서 배열을 정의하는 방법 2가지 : 정적, 동적 정적 방식: 처음부터 배열을 구성하는 아이템을 포함하여 정의. 이 방식은 별도의 배열 선언이 필요 없다는 장점. 대괄호 사용, 대괄호 내에 차례대로 아이템 나열. var cities = ["Seoul", "New York", "LA"] 리터럴: 값 자체를 의미. 배열의 아이템을 참조하는 방법 cities[0] cities[1] *배열 순회 탐색 :순서가 있는 데이터를 처음부터 마지막까지 차례대로 읽어 들이는 것. 순회탐색에는 주로 반복문이..

iOS swift 제어전달문 (4가지) / 구문레이블

제어전달문: 코드의 한 부분에서 다른 부분으로 제어 흐름을 전달하여 코드가 실행되는 순서를 변경해주는 구문. 4가지 1. break 2. continue 3. fallthrough : switch구문의 흐름을 제어할 때 다룬 구문. 일치된 case 블록의 실행을 다음 case 블록으로 전달할 때 사용. 4. return : 함수, 메소드에서 사용. 값을 반환 및 실행 종료 또는 단순히 코드의 실행을 종료. break: switch 구문에서의 실행 흐름이나 반복 실행 중인 루프를 조건식의 결과에 상관없이 즉각적으로 종료하는 데에 사용. continue: 이 구문 아래에 있는 실행 구문들을 건너뛰고 다음 반복을 시작하는 역할. continue구문 이후에 실행할 내용이 남아있더라도 실행되지 않는 것은 brea..

iOS swift switch구문

switch구문 입력받은 값을 조건식 여부가 아니라 패턴으로 비교, 그 결과를 바탕으로 실행 블록을 결정하는 조건문. 나열된 패턴들을 순서대로 비교하다가 일치하는 첫번째의 코드 불록을 실행. switch { case : case , : default : } case 비교 패턴 어느 것과도 일치하지 않았다면, 맨 마지막에 작성된 default구문의 코드가 실행된다. 일치하는 비교 패턴이 있을 경우, 해당 블록의 실행코드를 처리하고, 더 이상의 비교 없이 전체 분기문을 종료. 설사 일치하는 비교 패턴이 여러개 있더라도 맨 처음 일치하는 case구문 하나만 실행. 오직 하나의 case구문만 처리하고 나면 더 이상 비교를 진행하지 않음. 다른 언어에서는 원래 각 case키워드 블록마다 break 추가 해야하는데..

iOS swift #available 구문

#available 구문 API가 버전을 탄다 OS버전별로 구문을 달리 작성해 주어야 한다 OS버전별로 구문을 분리해야 할 때 #available 구문 사용 if #available(, , ) { } else { } 플랫폼, 버전은 상수로 인식되므로 문자열 처리를 위해 따옴표 사용할 필요 없다. 단순히 플랫폼과 버전을 나열하기만 하면 됨. 최신 API를 사용할 때는 항상 #available 구문을 사용해서 코드 분리, 하위 버전 사용자를 위한 처리까지 해주어야 함. 출처: 꼼꼼한 재은씨의 swift 문법편