iOS/Swift이론 23

Swift의 고차함수에 대해 알아보자. (Map,Filter,Reduce)

부끄럽지만 iOS 프로그래밍을 하며 고차함수에 대한 이론만 공부하고 제대로 실전에서 사용을 해본 적이 없었다. 요즘 이론을 다시 공부하며 고차함수에 대해 제대로 이해하고 사용법도 익혀보고자 이 글을 작성한다. 일단 Filter, Map, Reduce에 대해 정리하기 전, 고차함수란 무엇일까?! 다른 함수를 전달인자(argument)로 받거나 함수 실행의 결과로 함수를 반환하는 함수 스위프트의 함수가 일급객체라는 것을 아니 무슨 소리인지 이해가 간다. https://yejprogramming.tistory.com/7 Swift) iOS 프로그래밍 함수, 1급객체, 클로저, 클래스 함수 함수의 타입 (자료형, 자료형, ...) -> 리턴형(Int, Int, ...) -> Int => 리턴형이 Void형이면 ..

iOS/Swift이론 2023.01.15

Swift의 비동기 처리

※해당 글은 Swift 비동기에 관한 다른 블로그 글들을 보고 공부 목적으로 정리하였습니다. 더 자세한 정보를 원할 시 하단의 출처를 보시고 해당 글들을 참고하시길 바랍니다!! Sync vs Async Sync(동기) 요청과 응답이 동시에 일어남 코드 작성 순서대로 호출 주어진 작업이 완료될 때 까지 다음 작업으로 넘어가지 않음 Async(비동기) 요청과 응답이 동시에 일어나지 않는 방식. 요청하면 상황에 따라 응답(하지 않을 수도 있음) 주어진 작업의 완료 여부와 관계 없이 작업 전달 후 바로 다음 작업으로 넘어감 Serial vs Concurrent Serial(직렬) 순차 진행 할 일을 하나의 스레드에 차곡차곡 순서대로 쌓는 것 DisaptchQueue.main() Concurrent(동시) 동시 ..

iOS/Swift이론 2023.01.08

[Swift] array! 배열에 대해 파헤쳐보자!

Swift의 컬렉션 타입에는 배열, 딕셔너리, 세트가 있다. 그 중에서 오늘은 배열에 대해 한 번 자세히 알아보고자 한다. 배열[array]은 "같은 타입"의 데이터들을 "순서"에 맞춰 저장하는 타입이다. 배열의 생성은 다음과 같이 한다. var array : Array = Array() var array2 : = [Int]() var array3 : [Int] = [] 여기서 알아야 할 점! 1. 위 코드와 같이 빈 배열을 생성할 경우에는 배열의 타입을 명시해야 하지만, 값을 넣어서 배열을 만들 경우에는 타입을 명시하지 않아도 된다. 그런 경우는 밑의 코드 처럼 작성한다. var array = [100, 200, 300] 2. 하나의 배열에는 같은 타입의 데이터들만 있을 수 있다. 고로 밑의 코드는 잘..

iOS/Swift이론 2022.12.28

UIKit

Cocoa Touch Framework : iOS 개발환경 구축을 위한 최상위 프레임워크 가장 많이 사용되는 애플리케이션 : UIKit, Foundation UIKit Framework : 사용자의 인터페이스 관리, 이벤트 처리(제스처, 그림그리기, 텍스트 등) UIView, UIViewController 등 UI가 붙는 것들은 UIKit 주로 MVC 디자인 패턴 (Model, View, Controller) model: 앱의 데이터, 비즈니스 로직 (무엇을) view: 사용자에게 데이터를 보여주는 ui (보여줄것인가) controlelr: 모델과 뷰의 중간다리 역할 (어떻게) - 현실에서는 View와 Contoller가 너무 가까움. 프로젝트가 커질수록 Controlller가 비대해짐 이를 해결하기 위..

iOS/Swift이론 2022.05.23

Swift) 열거형 enum

열거형 : enum [Enumberations] - 관련있는 데이터들이 멤버로 구성되어 있는 자료형(type) 객체 언제 사용할까? - 원치 않는 값이 잘못 입력되는 것을 방지 - 입력 받을 값이 한정되어 있을 때 - 특정 값 중 하나만 선택하게 할 때 예시) 색깔선택(빨,노,파,초 ...), 성별선택(남,여) 등 선언 방법 ① 한줄로 나열 enum Compass { case North, South, East, West } ② 각각의 case문에 멤버들 나열 enum Compass { case North case South case East case West } enum Compass { case North case South case East case West } var north : Compass =..

iOS/Swift이론 2022.04.19

Swift) 프로토콜과 델리게이트 Protocol, Delegate

Delegate : 대리자, 조력자라는 사전적 의미를 가지고 있다. 과연 무슨 소리일까? 객체 지향 프로그래밍에서 하나의 객체가 모든 일을 처리하지는 않는다. delegate은 바로 처리해야 할 일들 중 일부를 다른 객체에 넘겨주는 역할을 한다. delegate 사용법 class가 delegate을 채택한다. 위임자를 설정한다. 그 delegate 안에 메서드를 구현한다. Delegate는 해당 클래스에서 위임자로 등록한 객체에서 메서드에 따른 이벤트가 발생하면 호출된다. TableView로 예시를 들어보자. ViewController 클래스가 UITableDelegate을 채택 프로퍼티로 선언된 tableView를 delegate 선언 delegate 안에 메서드 구현(e.g. TableView의 Ce..

iOS/Swift이론 2022.04.12

Swift) 클래스와 메서드

class Man{ var age : Int var weight : Double } 초기화 방법 ① class Man{ var age : Int = 1 var weight : Double = 3.5 } ② class Man{ var age : Int? var weight : Double? } ③ class Man{ var age : Int var weight : Double init(){ age = 1 weight = 3.5 } } 메서드 정의하기 class Man{ var age : Int = 20 var height : Double = 170.9 func Me(){ print("나이=\(age), 키=\(height)") } } 메서드 사용하기 class Man{ var age : Int = 20 v..

iOS/Swift이론 2022.03.30

[iOS]Swift 구조체

구조체는 상수 혹은 변수에 할당될 때, 혹은 함수에 들어갈 때 그 값이 복사되는 값타입이다. 구조체 안의 변수 : 프로퍼티 구조체 안의 함수 : 메서드 struct 구조체 이름 { 프로퍼티와 메서드 } struct Game { var name : String var genre : String func detail() { print("이번에 출시할 게임은 \(name)이고, 장르는 \(genre)입니다.") } } var game = Game(name : "Adventure Time", genre : "adventure") let a = game.name print(a) game.name = "Finn" let b = game.name print(b) game.detail()

iOS/Swift이론 2022.03.22

[iOS]Swift 함수

Swift의 함수에 대해서 알아보자. 함수(function) : 작업을 수행하는 코드의 집합 스위프트에서 함수의 키워드는 func이다. 함수의 기본 형태 func 함수명(파라미터 이름:데이터 타입) -> 반환 타입 { return 반환 값 } //리턴값이 Int인 함수 func sum(a: Int, b: Int) -> Int { return a+b } var ans = sum(a: 10, b: 2) print(ans) //리턴값이 String인 함수 func display() -> String { return "Hello" } print(display()) /* //반환 값이 없는 함수를 선언하는 방법은 밑과 같다. (둘은 같은 의미) func printName() -> Void {} func print..

iOS/Swift이론 2022.03.17

[iOS]Swift 컬렉션 타입 : Array, Dictionary, Set

컬렉션 타입[Collection Type] 은 데이터들의 집합이다. Swfit에서는 배열[array], 딕셔너리[dictionary], 세트[set]를 지원하고 있다. 배열[Array] 배열은 같은 타입의 데이터들을 순서에 맞춰 리스트에 저장한다. //빈 배열 생성 var firstArray: Array = Array() //var firstArray = [Int]() //축약형1 //var firstArray: [Int] = [] //축약형2 //배열에 값 삽입 firstArray.append(0) firstArray.append(1) firstArray.append(3) //배열의 원하는 자리에 값 삽입 firstArray.insert(2, at: 2) //2번 인덱스에 2를 넣는다. firstArr..

iOS/Swift이론 2022.03.03