본문 바로가기

아이폰개발7

[33일차] guard let과 if let 차이점 guard let track = item else { return } guard 뒤에 따라붙는 코드의 실행 결과가 true일 때 코드가 계속 실행됩니다. if 구문과는 다르게 guard 구문은 항상 else 구문이 뒤에 따라와야 합니다. 만약 guard 뒤 따라오는 Bool 값이 false라면 else의 블록 내부 코드를 실행하게 됩니다. 이 내부 코드에는 자신보다 상위 코드 블록을 종료하는 코드가 반드시 들어가게 됩니다. 코드 블록 종료시 return, break, continue, throw 등 제어문 전환 명령을 사용합니다. if let prefix = rawPrefix { print(prefix+name) } else { print("need prefix") } if let은 조건에 따라 다른 결.. 2020. 9. 19.
[29일차] Protocol이란? 아래의 글은 '군옥수수님의 포스팅' 내용을 발췌한 내용입니다. Swift를 잘 다루고 여러 샘플 코드들을 정확히 이해하려면 protocol은 완벽히 익히고 있어야 한다고 생각합니다. 어떻게 보면 Swift의 강력한 기능 중 하나가 protocol이라고 생각됩니다. 그럼 지금부터 protocol에 대해서 천천히 알아가는 시간을 갖도록 하겠습니다. 애플의 공식문서에 정의된 protocol의 정의는 다음과 같습니다. "A protocol defines a blueprint of methods, properties, and other requirements that suit a particular task or piece of functionality." 직역하자면 다음과 같습니다. "protocol은 특정 작.. 2020. 8. 27.
[28일차] SearchBar와 키보드 숨김 처리 넷플릭스 앱과 비슷한 디자인의 앱을 만들어본다. 콘텐츠 플랫폼 앱에서 대부분 존재하는 검색바(SearchBar)를 추가해보고 키보드 관련 동작을 테스트해보고자 한다. 1. 검색 탭으로 이동 + 상단에 검색창(SearchBar)을 추가한다. 우리들이 보통 사용하는 앱에서는 키워드를 입력 후, [검색] 버튼을 누르면 키보드 화면이 내려가고 검색결과 화면이 나오는 게 일반적이다. 하지만, 이러한 처리가 자동으로 되지는 않는다. 키보드를 내려주는 별도의 처리가 필요하다. 2. 입력한 검색어를 출력하는 함수 생성 + [검색] 버튼 이후 '키보드' 자동 내리기 처리 SearchBar, TextField .. 등등 텍스트를 기재하는 여러 UI 요소에서는 resignFirstResponder() 를 자주 사용하게 될 .. 2020. 8. 22.
[25일차] Concurrency 동시성 (sync/Async) * Concurrenty (동시성) - 사용자 인터랙션 처리 (Main Thread에서 처리) - 네트워킹 - 백그라운드에서 파일 다운로드 - 파일 저장하고 읽기 컴퓨터에서는 여러 개의 스레드가 동시에 수행되면서 백그라운드에서 수많은 작업들이 이루어진다. * GCD (Grand Centeral Dispatch) : 해야 할 일들을 GCD로 전달해주면 시스템에서 안전하게 수행될 수 있도록 처리 (Queue FIFO 구조로 처리) * DispatchQueue 1) Main Queue : 메인 스레드에서 작동하는 큐 ex) DispatchQueue.main.async { ... } 2) Global Queue : 시스템에 의해 관리되는 큐 # QoS (Quality of Service) : 큐의 우선순위를 결.. 2020. 8. 15.
[24일차] Network 통신 우리가 사용하는 대부분의 앱 서비스에는 'Network' 통신이 필요하다. 로그인, 장바구니, 결제 등등 서버와의 통신이 필요한 기능의 대부분에 쓰여지는 기술이다. * App + Concurrency (동시성) : 앱 서비스 내에서 네트워크 통신이 이루어지는 과정이라도 동시적으로 사용자 터치 반응에 대한 처리는 이루어져야 한다. * HTTP : 앱과 서버 사이에서 데이터를 주고 받기 위한 네트워크 통신규약 * HTTP Request Method 1. POST : Create 2. GET : Read 3. UPDATE : Update 4. DELETE : Delete * Content-Type : 전달되는 데이터 형식(text/html, application/json, image/png, video/mpe.. 2020. 8. 14.
[12일차] Set 과 Closure 이용 * Set : 중복이 없는 유니크한 아이템을 담을 때 사용 * Closure : 이름이 없는 메소드 클로저를 이용하여 동적으로 함수를 만들어서 활용 가능 * Closure - Capturing Value (☆) : scope 밖의 범위에서도 사용이 가능하다. (Swift에서 제공하는 기능) 2020. 7. 28.
[8일차] Functional 고급 기능 * Functional 함수 중간 과제 (실습) - 총 3문제 - 1. 성, 이름을 받아서 fullName을 출력하는 함수 2. 1번에서 만든 함수인데, 파라미터 이름을 제거하고 fullName을 출력하는 함수 3. 성, 이름을 받아서 fullName을 return 하는 함수 온라인 학습할 때는, 반드시 중간에 제시하는 문제를 Pause(일시정지) 버튼을 이용해서 스스로 생각해서 코드를 구현하는 시간을 가져야 한다. ▹ 함수를 한마디로 정의한다면? : 함수는 자판기다. - 다양한 함수의 형태 (1) input만 있는 경우 (2) output만 있는 경우 (3) input, output 둘 다 있는 경우 (4) input, output 없이 내부 기능만 수행하는 경우 * 함수 형태 (전체적인 틀) func.. 2020. 7. 24.