๋ชฉ๋ก๐ฑ๐ iOS/๐ Swift (15)
Bibi's DevLog ๐ค๐
์ด ๊ธ์ ์๋ ๋งํฌ ์๋ฌธ์ ๋ฒ์ญ๋ณธ์ ๋๋ค. https://iharishsuthar.github.io/posts/swift-date/ Swift Date ์บ๋ฆฐ๋๋ time zone์ ๋ ๋ฆฝ์ ์ธ ์๊ฐ์ ํน์ ์ง์ . Date & Time Swift์์ Date() ์ ๊ฐ์ ์๊ฐ์ ๋จ์ผ ์์ (a single point in time) ์ ์บก์ํํฉ๋๋ค. ์ด๊ฒ์ ํน์ ์๊ฐ๋(time zone)๋ ๋ฌ๋ ฅ ์์คํ (calendarical system)์ ๋ ๋ฆฝ์ ์ ๋๋ค. ์ด๋ฅผ ๋ฌ์ฑํ๊ธฐ ์ํด, Date() ๊ฐ์ January 1, 2001 at 00:00:00 UTC ๋ผ๋ ๊ธฐ์ค ๋ ์ง๋ก๋ถํฐ ์๋์ ์ธ ์คํ์ ์ผ๋ก ์ด ์๋ฅผ ์ธ๋ 64๋นํธ ๋ถ๋์์์ ์ซ์๋ก์ ์ ์ฅ๋ฉ๋๋ค. Date ํ์ ์ Foundation ํ๋ ์์ํฌ์ ์ผ๋ถ์ ๋๋ค. ๋ฐ๋ผ์ ..
https://docs.swift.org/swift-book/documentation/the-swift-programming-language/concurrency/ ์ ๊ณต์๋ฌธ์๋ฅผ ๋ฒ์ญํ ๋ด์ฉ์ ๋๋ค. ๋์์ฑ : ๋น๋๊ธฐ ์์ ์ํํ๊ธฐ. ๋ณ๋ ฌ(parallel) ๋๋ ๋น๋๊ธฐ(asynchronous) ์ฝ๋๋ ๋ณต์ก๋ ์ฆ๊ฐ๋ผ๋ ๋น์ฉ์ ๊ฐ์ ธ์จ๋ค. Swift์์๋ ์ปดํ์ผ ํ์ ๊ฒ์ฌ๊ฐ ๊ฐ๋ฅํ ๋ฐฉ์์ผ๋ก ๊ฐ๋ฐ์์ ์๋๋ฅผ ํํํ ์ ์๋ค - ์๋ฅผ ๋ค์ด actor๋ฅผ ์ฌ์ฉํด mutable state์ ์์ ํ๊ฒ ์ ๊ทผํ ์ ์๋ค. Swift๋ ์ธ์ด ์์ค์์ ๋น๋๊ธฐ ์ฝ๋์ ๋ฌธ์ ๋ฅผ ์ปดํ์ผ ํ์์ ์ก์ ์ ์๋๋ก ๋๋๋ค. Swift์ ๋์์ฑ ๋ชจ๋ธ์ ์ฐ๋ ๋ ์์ ๊ตฌ์ถ๋์ง๋ง, ์ฐ๋ ๋์ ์ง์ ์ํธ์์ฉํ์ง๋ ์๋๋ค. completion handl..
global์ ๊ธฐ๋ณธ ๋์์ lazy Swift Language Guide - Properties - Global and Local Variables ์ค… Swift Language Guide - Properties ์ค. Global constants and variables are always computed lazily, in a similar manner to Lazy Stored Properties. Unlike lazy stored properties, global constants and variables don’t need to be marked with the lazy modifier. Local constants and variables are never computed lazily. ์ ์ญ..
์ฐธ๊ณ ํ ๋ฌธ์ https://babbab2.tistory.com/25 (Swift) http://www.tcpschool.com/c/c_memory_structure (์ปดํจํฐ ์ผ๋ฐ) http://net-informations.com/faq/net/stack-heap.htm (์ปดํจํฐ ์ผ๋ฐ - ํ๊ณผ ์คํ ๋น๊ต) ๋ฉ๋ชจ๋ฆฌ ๊ตฌ์กฐ ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ฉด, ์ด์์ฒด์ (OS)๋ ๋ฉ๋ชจ๋ฆฌ(RAM)์ ํด๋น ํ๋ก๊ทธ๋จ์ ์ํด ์ ์ ํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ํ ๋นํด ์ค๋ค. ์ด ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ์ด 4๊ฐ์ง ์์ญ์ผ๋ก ๋๋์ด์ ธ ์๋ค - Code, Data, Heap, Stack ์ถ์ฒ : TCPSchool (http://www.tcpschool.com/c/c_memory_structure) 1. Code ์ฝ๋ ์์ญ ์ฐ๋ฆฌ๊ฐ ์์ฑํ ์์ค ์ฝ๋๊ฐ ๊ธฐ๊ณ์ด ํํ๋ก ..
[Swift Language Guide (5.7)] Structures and Classes ๊ตฌ์กฐ์ฒด์ ํด๋์ค Structures and Classes - The Swift Programming Language (Swift 5.7) ๊ตฌ์กฐ์ฒด*์ *ํด๋์ค ๋ ๋น์ ์ ํ๋ก๊ทธ๋จ ์ฝ๋์ ๊ตฌ์ฑ ์์๊ฐ ๋๋ ๋ค๋ชฉ์ ์ ์ ์ฐํ ๊ตฌ์กฐ๋ค์ ๋๋ค. ์์, ๋ณ์, ํจ์๋ฅผ ์ ์ํ ๋์ ๊ฐ์ ๊ตฌ๋ฌธ์ ์ฌ์ฉํด ๋น์ ์ ๊ตฌ์กฐ์ฒด์ ํด๋์ค์ ํ๋กํผํฐ๋ค๊ณผ ๋ฉ์๋๋ค์ ๋ํด ๊ธฐ๋ฅ์ ๋ํ ์ ์์ต๋๋ค. ๋ค๋ฅธ ํ๋ก๊ทธ๋๋ฐ ์ธ์ด๋ค๊ณผ ๋ค๋ฅด๊ฒ, Swift๋ ์ฌ์ฉ์ ์ ์ ํด๋์ค๋ ๊ตฌ์กฐ์ฒด๋ฅผ ์ํ ๋ณ๋์ ์ธํฐํ์ด์ค์ ๊ตฌํ ํ์ผ์ ์์ฑํ๋๋ก ์๊ตฌํ์ง ์์ต๋๋ค. Swift์์๋, ํ๋์ ํ์ผ์ ๊ตฌ์กฐ์ฒด๋ ํด๋์ค๋ฅผ ์ ์ธํ๊ณ , ๊ทธ ๊ตฌ์กฐ์ฒด๋ ํด๋์ค์ ๋ํ ์ธ๋ถ ์ธํฐํ์ด์ค๋ ๋ค..
https://github.com/bibi6666667/a-swift-tour/blob/main/bibi/bibi.md GitHub - bibi6666667/a-swift-tour Contribute to bibi6666667/a-swift-tour development by creating an account on GitHub. github.com ์ค์ํํธ ๊ณต์ ๋ฌธ์์ธ The Swift Programming Language Guide ์ค ์ผ๋ถ์ธ, WELCOME TO SWIFT LANGUAGE GUIDE - The Basics ์ ํ๊ตญ์ด ๋ฒ์ญ๋ณธ์ ๋๋ค. ๊ฐ์ธ์ ์ผ๋ก ํ์ตํ๋ฉฐ ๋ฒ์ญํ ๋ฌธ์๋ผ ์ด์ํ ๋ถ๋ถ ๋ฐ ์ค์ญ์ด ์์ ์ ์์ต๋๋ค. ๋ฐ๊ฒฌ ํ ์๋ ค์ฃผ์๋ฉด ํ์ธ ํ ์์ ํ๊ฒ ์ต๋๋ค๐
6.5 ์ฒ๋ผ ์์์ ์ด ์กด์ฌํ๋ Double ์๋ฃํ์ ๊ฐ์ ๋ํด, ์์์ ์ดํ๊ฐ 0์ธ์ง ์๋์ง ํ๋ณํ๊ณ ์ถ์ ๋ ๋ฐฉ๋ฒ์ ์ฐพ์๋ณด์๋ค. 6.5 : ์์์ ์ดํ๊ฐ 0์ด ์๋ (false) 6.0 : ์์์ ์ดํ๊ฐ 0์ (true Checking if a double value is an integer - Swift ์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ๋ฉด ์์ ์๋ฏ ์ฌ๋ฌ ๋ฐฉ๋ฒ์ด ์์ง๋ง.. ์ต๋ํ ๋ถ์์ฉ์ด ์์ด ๋ณด์ด๋ ๋ฐฉ๋ฒ์ผ๋ก ์ฌ์ฉํด ๋ดค๋ค. Dobule์ด Double → Int → Double ๋ก ํ๋ณํํ ๊ฐ๊ณผ ๊ฐ์์ง ํ์ธ I suggest converting the value to Int then to Double and checking the new value if value == Double(Int(value)) { // The..
์ฐธ๊ณ ํ ๋ฌธ์ The ultimate guide to Timer Apple Developer Documentation Why would a scheduledTimer fire properly when setup outside a block, but not within a block? Swift์์ ์ง์ฐ์๊ฐ์ ๋๊ณ ์ฝ๋๋ฅผ (๋ฐ๋ณต)์คํํ๋ ๋ฐฉ๋ฒ์ ํฌ๊ฒ ๋ ๊ฐ์ง๊ฐ ์๋๋ฐ, Timer์ DispatchQueue.main.asyncAfter ์ด๋ค. Note: Before I start, I want to make it clear that there is a significant energy cost to using timers. We’ll look at ways to mitigate this, but broadly..