๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Swift

(5)
[Swift] Cannot assign to property: 'self' is immutable Cannot assign to property: 'self' is immutable ๋ฌธ์ œ ์›์ธ๊ณผ ํ•ด๊ฒฐ์œ„ ๋ฌธ์ œ๋Š” ๊ตฌ์กฐ์ฒด(Struct)์•ˆ์˜ property๋ฅผ ํ•จ์ˆ˜๋ฅผ ํ†ตํ•ด์„œ ๋ณ€๊ฒฝํ•˜๋ ค๊ณ  ํ•  ๋•Œ, ๋ฐœ๊ฒฌํ•  ์ˆ˜ ์žˆ๋‹ค.๊ธฐ๋ณธ์ ์œผ๋กœ ๊ตฌ์กฐ์ฒด๋Š” ์Šค๋ƒ…์ƒท(snap shot)์„ ์ฐ์–ด๋‚ด๋Š” ๊ฒƒ์ด๋‹ค.struct Example { var p = 0 func changeP() { p += 1 //p๋ฅผ 1์ฆ๊ฐ€ }}์œ„ ์ฝ”๋“œ์—์„œ p๋Š” ๊ฐ€๋ณ€ ๋ณ€์ˆ˜๋กœ ์ •์˜ํ–ˆ๋‹ค. ํ•˜์ง€๋งŒ ํ•ด๋‹น ๊ตฌ์กฐ์ฒด๋Š” ๋ณ€ํ•˜์ง€ ์•Š๋Š” ์Šค๋ƒ…์ƒท์ด ๋˜์–ด์•ผํ•˜๊ธฐ์— ๊ตฌ์กฐ์ฒด ์ž…์žฅ์—์„œ ๋ถˆ๋ณ€์ด์—ฌ์•ผํ•  property p๋ฅผ ๊ตฌ์กฐ์ฒด ๋‚ด๋ถ€ ํ•จ์ˆ˜์—์„œ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์—†๋‹ค.var ex1 = Example()ex1.p = 1 //p๊ฐ’์„ ๋ณ€๊ฒฝ์œ„ ์ฒ˜๋Ÿผ Example์„ ์ƒ์†๋ฐ›์•„ ์ƒ์„ฑํ•œ ex1๊ฐ์ฒด๋Š” p๊ฐ’..
[Swift Tutorial] Swift UI Layout ์•ˆ์ „ ์˜์—ญ / ํ™”๋ฉด ์ „์ฒด ์ฑ„์šฐ๊ธฐ # Swift ์—ฌ๋ฐฑ ์—†์• ๊ธฐ / ํ™”๋ฉด ์ „์ฒด ์ฑ„์šฐ๊ธฐ 1. ์ œ์•ฝ ์กฐ๊ฑด ์ถ”๊ฐ€ํ•˜๊ธฐ ์ถ”๊ฐ€ํ•œ view๋ฅผ ์„ ํƒ ํ›„ ์˜ค๋ฅธ์ชฝ ํ•˜๋‹จ์˜ ์ œ์•ฝ์‚ฌํ•ญ ๋ฒ„ํŠผ์„ ์ถ”๊ฐ€ํ•ด์„œ view์˜ ์ œ์•ฝ์‚ฌํ•ญ์„ ์ถ”๊ฐ€ํ•œ๋‹ค. ๋ถ‰์€ ํ™”์‚ดํ‘œ๋กœ ํ‘œ์‹œ๋˜์–ด์žˆ๋Š” ์„ ์„ ํด๋ฆญํ•˜์—ฌ ๋‹ค๋ฅธ view์™€ ์ƒ๋Œ€์ ์ธ ๊ฑฐ๋ฆฌ ์ œ์•ฝ์„ ๋งŒ๋“ ๋‹ค. 4๋ฉด์„ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ๊ฑฐ๋ฆฌ ์ œ์•ฝ์„ ๋งŒ๋“ค ์ˆ˜ ์žˆ๋‹ค. (์œ„ ์‚ฌ์ง„์€ ๊ฑฐ๋ฆฌ ์ œ์•ฝ์„ 0์œผ๋กœ ๋งŒ๋“ฆ) ๊ฑฐ๋ฆฌ ์ œ์•ฝ์„ 0์œผ๋กœ ํ–ˆ์Œ์—๋„ ์—ฌ๋ฐฑ์ด ์ƒ๊ธด ์ด์œ ๋Š” ๊ฑฐ๋ฆฌ ์ œ์•ฝ์ด ์ƒ๋‹จ์˜ ๋…ธ์น˜๊ฐ€ ์Šคํฌ๋กค ๋ฐ”๊ฐ€ ํฌํ•จ๋˜์–ด์žˆ๋Š” ์•ˆ์ „์˜์—ญ(Safe area)๊ณผ ์ด๋ค„์กŒ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค. ํŒŒ๋žœ์ƒ‰ view๋ฅผ ์ „์ฒด ํ™”๋ฉด์œผ๋กœ ์ฑ„์šฐ๊ธฐ ์œ„ํ•ด์„œ๋Š” ์ด๋Ÿฌํ•œ ์ œ์•ฝ์‚ฌํ•ญ์„ safe area๊ฐ€ ์•„๋‹Œ ์ „์ฒด view๋กœ ๋งž์ถฐ์ฃผ๋ฉด ๋œ๋‹ค. 2. ์ œ์•ฝ ์‚ฌํ•ญ ๊ฐ์ฒด ๋ฐ”๊พธ๊ธฐ ์œ„ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์™ผ์ชฝ view controller์—์„œ cons..
[Swift Tutorial] Swift ๋‚œ์ˆ˜ ์ƒ์„ฑ, ๋ฐฐ์—ด ๋žœ๋ค ์ ‘๊ทผ Swift ๋‚œ์ˆ˜ ์ƒ์„ฑํ•˜๊ธฐ Swift๋Š” ์ •์ˆ˜, ์‹ค์ˆ˜, ๋…ผ๋ฆฌํ˜• ํƒ€์ž…์˜ random ํ•จ์ˆ˜๋ฅผ ์ด์šฉํ•ด์„œ ๋‚œ์ˆ˜๋ฅผ ์ƒ์„ฑํ•  ์ˆ˜ ์žˆ๋‹ค. //๋‚œ์ˆ˜ ์ƒ์„ฑ Int.random(in: 0...10) //0~10 ์ •์ˆ˜ ๋žœ๋ค(0, 10 ํฌํ•จ) Int.random(in: 0..
[Swift Tutorial] Swift print ๋ฌธ ์•ˆ์— ์ˆ˜์‹ ๋ฐ ๋ณ€์ˆ˜ ๋„ฃ๊ธฐ Swift print๋ฌธ ๋ฌธ์ž์—ด ์•ˆ์— ์ˆ˜์‹ ๋ฐ ๋ณ€์ˆ˜ ๋„ฃ๊ธฐ Swift์˜ ๊ฒฝ์šฐ, Java, JavaScript, python ๋ฌธ์ž์—ด ์‚ฌ์ด์— + ๋ฅผ ์ด์šฉํ•˜์—ฌ ์ˆ˜์‹์ด๋‚˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฝ์ž…ํ•  ์ˆ˜ ์—†๋‹ค. ๋Œ€์‹ , ๋ฌธ์ž์—ด ์•ˆ์— \([์ˆ˜์‹ ๋ฐ ๋ณ€์ˆ˜]) ์ฒ˜๋Ÿผ ์—ญ์Šฌ๋ž˜์‰ฌ ๊ด„ํ˜ธ ์•ˆ์— ๊ฐ’์ด๋‚˜ ์ˆ˜์‹์„ ์ง์ ‘ ๋„ฃ์–ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค. // ์ˆ˜์‹ ์ง์ ‘ ์ž…๋ ฅ print("1 + 1 = \(1+1)") //๋ณ€์ˆ˜ ์‚ฝ์ž… var result = 3 print("1 + 2 = \(result)")
[Swift Tutorial] Xcode UIImage imageLiteral / imageLiteralResourceName ์‚ฌ์šฉ ์˜ˆ์‹œ UIImageView ๊ฐ์ฒด์˜ value๋ฅผ ํ• ๋‹นํ•˜๊ธฐ ์œ„ํ•œ imageLiteral / imageLiteralResourceName ์‚ฌ์šฉ ์˜ˆ์‹œ 1. Asset์— ์ด๋ฏธ์ง€ ์ž์‚ฐ์„ ๋“ฑ๋ก ๋‹ค์šด๋กœ๋“œํ•˜๊ฑฐ๋‚˜ ๊ฐ€์ง€๊ณ  ์žˆ๋˜ ์ด๋ฏธ์ง€ ํŒŒ์ผ์„ ๋“œ๋ž˜๊ทธ ์•ค ๋“œ๋กญ์œผ๋กœ Assets ๋””๋ ‰ํ† ๋ฆฌ ํ•˜์œ„์— ๋„ฃ์Šต๋‹ˆ๋‹ค. 2. UIImageView ๊ฐ์ฒด ์ค€๋น„ diceImageViewOne ์ด๋ผ๋Š” ์ด๋ฆ„์˜ UIImageView ๊ฐ์ฒด๊ฐ€ ์ƒ์„ฑ ๋ฐ ๋งํฌ ์—ฐ๊ฒฐ๋œ ๋ชจ์Šต 3. ๊ฐ์ฒด์˜ ์†์„ฑ๊ณผ ๊ฐ’(value)๋ฅผ ํ• ๋‹น ๊ฐ์ฒด.์†์„ฑ = ๊ฐ’ ๊ฐ’์„ ํ• ๋‹นํ•˜๋Š” ๋ฐฉ๋ฒ• 2๊ฐ€์ง€ 3-1 imageLiteral ์‚ฌ์šฉ ๊ฐ’(value)์˜ ์œ„์น˜์— "#imageLiteral(" ๊นŒ์ง€ ํƒ€์ดํ•‘ํ•˜๋ฉด imageLiteral์ด ์ž๋™์™„์„ฑ ๋œ๋‹ค. ์ž๋™์™„์„ฑ๋œ iamgeLiteral์€ ์™ผ์ชฝ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์ด๋ฏธ์ง€ ์•„..

728x90