본문 바로가기

iOS/Swift22

[iOS] Protocol과 Delegate 프로토콜 특정 기능 및 역할을 수행하기 위해 필요한 것들이 적혀있는 설명서와 동일한 개념 특정 역할을 수행하기 위한 메서드, 프로퍼티, 기타 요구사항 등이 적혀있는 하나의 "설명서" 다. 프로토콜 채택이란 "이 설명서를 드릴테니, 여기 나와있는대로 구현해주세요" 라고 다른 타입(구조체,클래스,열거형)에게 전달하는 것이 가능하며, 이 행위를 프로토콜 채택이라고 한다. 프로토콜은 protocol이라는 키워드를 사용해 내부 블럭 안에 필요한 부분들을 정의한다. (프로퍼티, 메서드, 이니셜라이저 등 필요한 요구사항을 적는다) protocol Talkabl { //프로퍼티 요구 var topic : String { get set } var language : String { get } //메서드 요구 func t.. 2021. 10. 31.
[iOS] Struct와 Class struct와 class struct와 class는 '프로퍼티'와 '메소드'를 사용하여 구조화된 데이터과 기능을 가질 수 있고, 하나의 사용자정의 데이터 타입을 만드는 것이라고 생각하면 된다. 차이점을 보자면 “class는 참조타입이고 ARC로 메모리를 관리한다. struct는 값 타입이다.” struct 여러 변수를 담을 수 있는 컨테이너 개념으로 생각하면 된다. 우리가 사용하고 있는 데이터 타입(Int, String 등), 기본 자료형 타입(Array,Set, Int, Float, Double 등)들도 모두 구조체로 이루어져 있다. 구조체는 타입을 정의하는 것이기 때문에 UpperCamelCase를 사용한다. // 인스턴스 : 클래스/구조체/열거형에서 생성된 객체 var jihu: Person = P.. 2021. 10. 23.
[iOS] @IBOutlet과 @IBAction 화면 상 요소를 제어하기 위한 2가지 타입(Interface Builder Annotation) @IBOutlet 처리 결과를 View에 알리고 원하는 동작을 이끔 View에 존재하는 요소와 Controller를 연결하기 위한 변수 //사용 예시 @IBOutlet weak var nameTextField: UITextField! @IBOutlet weak var nextBtn: UIButton! @를 붙이는 이유 - 컴파일러에게 어떤 속성을 가지고 있다는 것을 전달하는 예약어다. : UITextField!는 무엇일까 - UI 중에 어떤 항목을 가르키도록 설정할 것인가를 의미한다. !는 무엇 일까 - Option중에 하나이다. Option은 !와 ?두가지가 있다. !은 변수 뒤에 붙여주면 nil(null).. 2021. 10. 16.
[iOS] Life Cycle Life Cycle(생명주기)란? 태어나고 죽기까지 하나의 연결된 과정. 우리가 개발할 iOS APP 또한 생명주기가 있다. 앱의 상태(App State) 변화 Not Running 앱이 실행되지 않거나 종료된 상태 Inactive foreground에서 running되고 있지만, 이벤트는 수신하지 않는 상태. 전화를 걸었을 때, SMS 메세지가 수신되었을 때의 짧은 순간 Active foreground에서 실행되고 이벤트를 수신하는 상태 Background 앱이 background에서 실행되고 코드를 실행시키는 상태. 파일 다운로드나, 업로드 등 실행 시간이 필요한 앱인 경우 특정 시간동안 이 상태로 남아있게 되는 경우가 있음 앱이 suspended 상태에서 다시 실행되면 앱은 background → .. 2021. 10. 16.