์์ฑ๊ฐ์์ [ Swift ] ์์ฑ ๊ฐ์์(Property Observers) ์์ฑ ๊ฐ์์(Property Observers)๋? ํ๋กํผํฐ ์ต์ ๋ฒ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ์์ฑ(property)์ด ๋ณํ ๋ ํธ์ถ์ด ๋๋ค. var myProperty: Int = 20 { didSet{ // ๋ณ๊ฒฝ๋ ์งํ์ ํธ์ถ // oldValue๊ฐ ํธ์ถ๊ฐ๋ฅ } willSet{ // ๋ณ๊ฒฝ๋๊ธฐ ์ง jihae-qu.tistory.com ์์ฑ๊ฐ์์, ํ๋กํผํฐ ์ต์ ๋ฒ๋ ๋ณ์์ ๊ฐ์ด ๋ณํจ์ ๊ด์ฐฐํ๋ ๋ฉ์๋์
๋๋ค. ๋ณ์์ ๊ฐ์ด ๋ณํจ์ ๊ด์ฐฐํ๊ธฐ ๋๋ฌธ์ ๋น์ฐํ var ๋ง ์ ์ธ์ด ๋๊ฒ ์ฃ ? ๊ฐ์ด ๋ณํ๋๊ธฐ ์ง์ ์ ํธ์ถ๋๋ willSet ๊ณผ ๊ฐ์ด ๋ณํ๋๊ณ ๋ ํ์ ํธ์ถ๋๋ didSet ์ด ์์ต๋๋ค. didSet ์ oldValue ๊ฐ์ ํธ์ถํ๊ณ , willSe..
์ ๊ทผ์ ์ด์ ๊ธฐ๋ณธ ๊ฐ๋
์ ๊ทผ์ ์ด๊ฐ ํ์ํ ์ด์ ์ ํ์ด ์ํ๋ ์ฝ๋๋ฅผ ๊ฐ์ถ ์ ์์. ์ฝ๋์ ์์ญ์ ๋ถ๋ฆฌ์์ผ์, ํจ์จ์ ์ผ๋ก ๊ด๋ฆฌ ๊ฐ๋ฅ ์ปดํ์ผ ์๊ฐ ๊ฐ์ ์ปดํ์ผ๋ฌ ์
์ฅ์์๋ ํด๋น ๋ณ์๊ฐ ์ด๋ ๋ฒ์์์๋ง ์ฌ์ฉํ๋์ง ์ธ์งํ ์ ์์ด์ ๋ ๋น ๋ฅด๊ฒ ์ํํ ์ ์๋ค. class Student { private var _name: String = "ํ๊ธธ๋" func setName(_ name: String) { self._name = name } } var student = Student() // student._name // ๐จ error: Value of type 'Student' has no member 'name' // student._name = "EarthSea" // ๐จ error: Value of type..
์์ฑ ๊ฐ์์(Property Observers)๋? ํ๋กํผํฐ ์ต์ ๋ฒ๋ผ๊ณ ๋ ๋ถ๋ฆฌ๋ฉฐ, ์์ฑ(property)์ด ๋ณํ ๋ ํธ์ถ์ด ๋๋ค. var myProperty: Int = 20 { didSet{ // ๋ณ๊ฒฝ๋ ์งํ์ ํธ์ถ // oldValue๊ฐ ํธ์ถ๊ฐ๋ฅ } willSet{ // ๋ณ๊ฒฝ๋๊ธฐ ์ง์ ์ ํธ์ถ // newValue๊ฐ ํธ์ถ๊ฐ๋ฅ } } didSet - ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ง ํ์ ํธ์ถ๋๊ณ , ๋ณํ๊ธฐ ์ ์ ๊ฐ์ด oldValue๋ก ์๋ ์ ์ฅ๋จ. willSet - ๊ฐ์ด ๋ณ๊ฒฝ๋ ์ง์ ์ ํธ์ถ๋๊ณ , ๋ณํ ํ์ ๊ฐ์ด newValue๋ก ์๋ ์ ์ฅ ์ ์ฅ์์ฑ์ var๋ก๋ง ์ ์ธ์ด ๊ฐ๋ฅ let์ ๊ฐ์ด ๋ณํ์ง ์๊ธฐ ๋๋ฌธ์ ๊ด์ฐฐํ ํ์๊ฐ ์์. ์ง์ฐ ์ ์ฅ ์์ฑ์ ๊ด์ฐฐ์ด ๋ถ๊ฐ๋ฅ ์๋ฃํ์ ์ ์ธํ๋ ๊ฒ์ ์ผ๋ฐ ๋ณ์์ ๋์ผ ์ ์ฅ ์์ฑ์ ๋ณํ ์์ ..
๐ ์ฝ๋ฉํ
์คํธ ์ฝ๋ฉํ
์คํธ ๋ฌธ์ ํ์ด โ๐ป Github ๋ฌธ์ ํ์ด github ๋งํฌ ๋ฌธ์ ์ค๋ช
๋ฌธ์์ด s๊ฐ ์
๋ ฅ๋์์ ๋ ๋ค์ ๊ท์น์ ๋ฐ๋ผ์ ์ด ๋ฌธ์์ด์ ์ฌ๋ฌ ๋ฌธ์์ด๋ก ๋ถํดํ๋ ค๊ณ ํฉ๋๋ค. ๋จผ์ ์ฒซ ๊ธ์๋ฅผ ์ฝ์ต๋๋ค. ์ด ๊ธ์๋ฅผ x๋ผ๊ณ ํฉ์๋ค. ์ด์ ์ด ๋ฌธ์์ด์ ์ผ์ชฝ์์ ์ค๋ฅธ์ชฝ์ผ๋ก ์ฝ์ด๋๊ฐ๋ฉด์, x์ x๊ฐ ์๋ ๋ค๋ฅธ ๊ธ์๋ค์ด ๋์จ ํ์๋ฅผ ๊ฐ๊ฐ ์
๋๋ค. ์ฒ์์ผ๋ก ๋ ํ์๊ฐ ๊ฐ์์ง๋ ์๊ฐ ๋ฉ์ถ๊ณ , ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํฉ๋๋ค. s์์ ๋ถ๋ฆฌํ ๋ฌธ์์ด์ ๋นผ๊ณ ๋จ์ ๋ถ๋ถ์ ๋ํด์ ์ด ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค. ๋จ์ ๋ถ๋ถ์ด ์๋ค๋ฉด ์ข
๋ฃํฉ๋๋ค. ๋ง์ฝ ๋ ํ์๊ฐ ๋ค๋ฅธ ์ํ์์ ๋ ์ด์ ์ฝ์ ๊ธ์๊ฐ ์๋ค๋ฉด, ์ญ์ ์ง๊ธ๊น์ง ์ฝ์ ๋ฌธ์์ด์ ๋ถ๋ฆฌํ๊ณ , ์ข
๋ฃํฉ๋๋ค. ๋ฌธ์์ด s๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ์ ๊ณผ์ ๊ณผ ๊ฐ์ด ๋ฌธ์์ด๋ค๋ก ๋ถํดํ..
์ค๋์ ์ด์ ๋ถํฐ ์๋ํ ๋ธ๋ก๊ทธ ์คํจ์ ์ ๋๋ฉ์ด์
์ ๋ฃ๋ ๋ฐฉ๋ฒ์ ๊ฒฐ๊ตญ ์คํจํ์์ต๋๋ค^_^ ํฐ์คํ ๋ฆฌ๋ก ๋์ด์จ ์ดํ๋ถํฐ ํ๋ฃจ์ ํ๋์ฉ ๋ธ๊พธํ๋๊ฒ ๋๋ฌด ์ข์์ ธ๋ฒ๋ ธ์ด์..!!! ๋ณผ๋๋ง๋ค ๋๋ ๋ฟ๋ฏํ๊ณ , CSS ๊ณต๋ถํ ๊ฒ ๊ฐ๊ณ .. ์์ ์ ์๋๋ก์ด๋ ์คํ๋์ค์์ xml ๊ฑด๋๋ ค๋ณธ ๊ธฐ์ต๋ ๋๊ณ ..ใ
๊ทผ๋ฐ์..? ์ ๊ฐ ๋ธ๋ก๊ทธ ์คํจ์ 5๋ฒ ๋ค์์๋๋ฐ ์คํจํ์ด์.. ๊ณ์ ์๋ํ๊ณ ์คํจํ๊ณ ๋ค์ ๋ฐฑ์
ํด์ ์๋ํ๊ณ ์คํจํ๊ณ , ๋ค์ ๋ฐฑ์
์๋, ์คํจ , ์์ค์์ค ์ดํด.. ๊ทธ๋ง ํฌ๊ธฐํ ๋๋ ๋๋๋ฐ,, ์ง์ง ๋๋ฌด ํ๊ณ ์ถ์ด์ ์ด์ ์๋ฒฝ 4์๊น์ง ํ๋ค๊ฐ ๊ฒฐ๊ตญ.. ์ด๋ฌ๋ค ๋ด์ผ ๊ณต๋ถ ๋ชปํ๊ฒ ๋ค ์ถ์ด์ ์ผ๋ฅธ ์๋ฌ๊ฐ๋ต๋๋ค.. ์ ๊ฐ ํ๊ณ ์ถ์๊ฑด.. ๋ฑ ์ธ ๊ฐ์ง์์.. ๋ธ๋ก๊ทธ ๋ฉ์ธ ๋ก๊ณ ์ ์ ๋๋ฉ์ด์
๋ฃ๊ธฐ!! ๋ธ๋ก๊ทธ ๊ธ ์๋จ์ ๋ฌผ๊ฒฐ ์ ๋๋ฉ์ด์
๋ฃ๊ธฐ!..
๐ ์ฝ๋ฉํ
์คํธ ์ฝ๋ฉํ
์คํธ ๋ฌธ์ ํ์ด โ๐ป Github ๋ฌธ์ ํ์ด github ๋งํฌ ๋ฌธ์ ์ค๋ช
์ ์ฌ์๊ฐ์ ๋๋์ด ๋ค์ด, ์ผ๋ถ ํ์์ด ์ฒด์ก๋ณต์ ๋๋๋นํ์ต๋๋ค. ๋คํํ ์ฌ๋ฒ ์ฒด์ก๋ณต์ด ์๋ ํ์์ด ์ด๋ค์๊ฒ ์ฒด์ก๋ณต์ ๋น๋ ค์ฃผ๋ ค ํฉ๋๋ค. ํ์๋ค์ ๋ฒํธ๋ ์ฒด๊ฒฉ ์์ผ๋ก ๋งค๊ฒจ์ ธ ์์ด, ๋ฐ๋ก ์๋ฒํธ์ ํ์์ด๋ ๋ฐ๋ก ๋ท๋ฒํธ์ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์๋ฅผ ๋ค์ด, 4๋ฒ ํ์์ 3๋ฒ ํ์์ด๋ 5๋ฒ ํ์์๊ฒ๋ง ์ฒด์ก๋ณต์ ๋น๋ ค์ค ์ ์์ต๋๋ค. ์ฒด์ก๋ณต์ด ์์ผ๋ฉด ์์
์ ๋ค์ ์ ์๊ธฐ ๋๋ฌธ์ ์ฒด์ก๋ณต์ ์ ์ ํ ๋น๋ ค ์ต๋ํ ๋ง์ ํ์์ด ์ฒด์ก์์
์ ๋ค์ด์ผ ํฉ๋๋ค. ์ ์ฒด ํ์์ ์ n, ์ฒด์ก๋ณต์ ๋๋๋นํ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด lost, ์ฌ๋ฒ์ ์ฒด์ก๋ณต์ ๊ฐ์ ธ์จ ํ์๋ค์ ๋ฒํธ๊ฐ ๋ด๊ธด ๋ฐฐ์ด reserve๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ..
ํ์
์บ์คํ
์ด๋? : ๋ณ์๋ ๊ฐ์ฒด์ ํ์
์ ๋ค๋ฅธ ํ์
์ผ๋ก ๋ณํํ๋ ๊ฒ is ์ฐ์ฐ์ : ํ์
์ ์ฒดํฌํ๋ ์ฐ์ฐ์๋ก Bool ํ์
์ ๋ฐํํ๋ค. var name: String = "EarthSea" print(name is String) print(name is Int) /* ์ถ๋ ฅ : true false */ var alphabet: Character = "A" print(alphabet is Character) print(alphabet is String) /* ์ถ๋ ฅ : true false */ var age: Int = 20 print(age is Int) print(age is Double) /* ์ถ๋ ฅ : true false */ ์
์บ์คํ
๊ณผ ๋ค์ด์บ์คํ
: ์ธ์คํด์ค์ ํ์
์ ํ์ธํ๊ฑฐ๋ ํด๋น ์ธ์คํด์ค๋ฅผ ์ํผํด๋..
์ .. ์ฌ์ค ์ค๋ ๋ธ๊พธํ์ด์..ใ
ใ
ใ
๋ด์ผ๋ถํฐ ๋ค์ ์ด์ฌํ ๋ฌ๋ ค๋ณผ๊ฒ์..๐ Swift ๋ฌธ๋ฒ์ ์ฒ์๋ถํฐ ๋ค์ ๋ณด๋ ๊ถ๊ธํ๊ฒ ๋ง๋๋ผ๊ตฌ์! ( ํน๊ฐ์์ ๋ค์ ๋๋ก ๋ญ๋ ๋ฌผ์ํ ์ด์ฌํ ์ฐ์ด๋ณด๋ ค๊ณ ํจ..ใ
ใ
) sort ์ sorted์ ์ฐจ์ด ์ ๊ฐ sortํจ์์ sorted ํจ์๊ฐ ์๋ค๋ ๊ฒ์ ์์๋๋ฐ, ๊ทธ ์ฐจ์ด๋ฅผ ์๊ณ ์์ง๋ ์์๋๋ผ๊ตฌ์. Sort ์ฐ์ sort์ ๋ํด์ ์์๋ณด์๋ฉด, sort๋ List ๋ผ๋ ํด๋์ค ๋ด์ ๋ฉ์๋์
๋๋ค. sort ๋ฉ์๋ ํจ์๋ฅผ ์คํํ์ฌ ๋ฐํํ๋ ๊ฐ์ None์ผ๋ก ์์ด์! Sorted ๊ทธ๋ ๋ค๋ฉด sorted๋?!?! sorted๋ iterable ๊ฐ์ฒด๋ฅผ ํ๋ผ๋ฏธํฐ๋ก ๋ฐ๋ ๋ฉ์๋์
๋๋ค. sorted ๋ฉ์๋ list, tuple, string, ์ฝ๋ ์
( ๋์
๋๋ฆฌ, ์งํฉ, .. ), ... ..