본문 바로가기

Learnings/Swift & iOS8

Swift 지연실행 실험 - NSTimer, asyncAfter, DispatchSourceTimer 요즘 부쩍 코드를 지연하여 실행시켜야 하는 일이 많아서 Swift Timer, Swift Delay 등의 키워드를 자주 찾아보았다. 그러면서 Swift엔 Timer(NSTimer), asyncAfter(DispatchQueue), DispatchSourceTimer 라는 딜레이 방식들이 있다는 걸 알게 되었다. 이것들이 어떻게 다른 지 한 번쯤 정리를 하고 싶었는데, 동작 원리까지 상세히 보기엔 내용이 too much라 우선은 패스하고.. 단순 비교를 통해 각각의 이모저모(?)를 살펴보려고 한다. * Xcode의 커맨드 라인 툴(macOS 플랫폼 - Command Line Tool)에서 실험하였습니다. 1. 기본 실행 우선 각 딜레이의 기본 동작 방식은 아래와 같다. asyncAfter - dispatc.. 2021. 1. 27.
===와 !==, 참조 비교 연산자 - Swift 노션에서 보기 LeetCode의 Linked List Cycle 문제를 풀다가 ===를 ~=와 헷갈리는 바람에 gae고생을 하였다. 너무 크게 얻어 맞은 느낌이라 정리를 안 해도 까먹진 않을 것 같지만... 그래도 그냥 넘어가면 아쉬우니 정리를 해보려고 한다. 비교 연산자 (Comparison Operator) ===와 ~= 모두 비교 연산자에 속한다. === 의 반대 격이라고 할 수 있는 !== 도 당연히 비교 연산자다. 연산자 설명 == A == B : A와 B의 value가 같은가 != A != B : A와 B의 value가 다른가 > A > B : A의 value가 B의 value보다 큰가 = A >= B : A의 value가 B의 value보다 크거나 같은가 2021. 1. 13.
고차함수 내용정리 (map, filter, reduce) 노션에서 보기 고차함수 내용정리 (map, filter, reduce) Swift 고차함수에 대하여 www.notion.so 0. 고차함수 고차함수란? 매개변수로 함수를 받는 함수를 말한다. Swift에서 함수는 일급시민이기 때문에 다른 함수를 전달인자로 받을 수 있다. Swift 표준 라이브러리에서는 다음과 같은 고차 함수를 제공한다 map filter reduce 모두 Container *(Array, Set, Dictionary 등)와 *Optional 타입에서 사용할 수 있다. for-in 구문과 기본적인 작동 원리가 같으나, 다음과 같은 이점이 있다. 코드가 간결하다 재사용이 쉽다 컴파일러 최적화 성능이 좋다 1. Map map이란? 제공된 클로저를 각 항목에 적용한 후, 원래의 순서와 같도록 .. 2021. 1. 6.
REPL로 swift하기: invalid active developer path error 해결 REPL(read-eval-print loop)이란? 간단히 말해 Command Line Tool에서 사용가능한 상호작용 프로그래밍 환경이다. 터미널을 열고 xcrun swift 를 입력하여 실행해주면 되는데... 아래와 같은 오류가 발생했다. xcrun: error: invalid active developer path (///), missing xcrun at: ~~~ 이러한 오류는 Mac OS 업데이트 후에 발생할 수도 있다고 한다. 아래와 같이 입력하면, xcode-select --install 명령어 라인 개발자 도구 설치 안내 메시지가 뜨고 설치를 진행해주면 된다. 조금 기다리면 완료! 그리고 다시 xcrun swift를 입력하여 실행하면, 잠시 후 환영 메시지와 함께 REPL이 실행된다. (.. 2020. 12. 20.