modalPresentationStyle .fullScreen๊ณผ .overFullScreen์˜ ์ฐจ์ด์ 

modalPresentationStyle์˜ ๋‘ ๊ฐ€์ง€ ์˜ต์…˜ ์ค‘ .fullScreen์€ ๋ชจ๋‹ฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ „์ฒด ํ™”๋ฉด์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ๋ถ€๋ชจ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์™„์ „ํžˆ ์‚ฌ๋ผ์ง‘๋‹ˆ๋‹ค. ๋‹ค์‹œ ๋งํ•ด, ๋ชจ๋‹ฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ํ™”๋ฉด ์ „์ฒด๋ฅผ ์ฐจ์ง€ํ•˜์—ฌ ๋ถ€๋ชจ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ฝ˜ํ…์ธ ๊ฐ€ ๋ณด์ด์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์—, .overFullScreen์€ ๋ชจ๋‹ฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ „์ฒด ํ™”๋ฉด์„ ์ฐจ์ง€ํ•˜์ง€๋งŒ, ๋ถ€๋ชจ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์—ฌ์ „ํžˆ ๋ณด์ด๋ฉฐ, ์ผ๋ถ€ ์ฝ˜ํ…์ธ ๊ฐ€ ์—ฌ์ „ํžˆ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ฆ‰, ๋ชจ๋‹ฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๋Š” ์ „์ฒด ํ™”๋ฉด์„ ์ฐจ์ง€ํ•˜์ง€๋งŒ, ๋ถ€๋ชจ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ์˜ ์ผ๋ถ€ ์ฝ˜ํ…์ธ ๊ฐ€ ์—ฌ์ „ํžˆ ๋ณด์ด๋ฉฐ ๋ฐฐ๊ฒฝ์€ ํˆฌ๋ช…ํ•˜๊ฒŒ ์ฒ˜๋ฆฌ๋ฉ๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ, .fullScreen์€ ๋ชจ๋‹ฌ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์ „์ฒด ํ™”๋ฉด์„ ์ฐจ์ง€ํ•˜๋ฉฐ, ๋ถ€๋ชจ ๋ทฐ ์ปจํŠธ๋กค๋Ÿฌ๊ฐ€ ์™„์ „ํžˆ ์‚ฌ๋ผ์ง€๋Š” ๋ฐ˜๋ฉด์—, .overFullScreen์€ ๋ชจ๋‹ฌ ๋ทฐ ..

  • textsms
Swift5.1 ๋ถˆํˆฌ๋ช… ํƒ€์ž… (Opaque type) some Type SE-0244

Swift5.1 ๋ถˆํˆฌ๋ช… ํƒ€์ž… (Opaque type) some Type SE-0244

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ Swift5.1์—์„œ ์†Œ๊ฐœ๋œ ๋ถˆํˆฌ๋ช… ํƒ€์ž… Opaque type์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค~! ๋ช…ํ™•ํ•œ ๋ฐ˜ํ™˜ ํƒ€์ž…์„ ์™ธ๋ถ€์— ์ œ๊ณตํ•˜๋Š” ๋Œ€์‹ , Opaque ๋ฐ˜ํ™˜(return) ํƒ€์ž…์„ ๊ฐ€์ง„ ํ•จ์ˆ˜, ๋ฉ”์„œ๋“œ๋Š” ์ž์‹ ์˜ ๋ฐ˜ํ™˜ํƒ€์ž… ์ •๋ณด๋ฅผ ์™ธ๋ถ€์— ์ˆจ๊ธธ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Return ํƒ€์ž…์„ ์ˆจ๊ธฐ๋Š” ๊ฒƒ์€ ๋ชจ๋“ˆ๋กœ ํ˜ธ์ถœ๋˜๋Š” ์ฝ”๋“œ์™€ ๋ชจ๋“ˆ ์‚ฌ์ด์—์„œ ์œ ์šฉํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ œ๋„ค๋ฆญ(๊ตฌํ˜„๋ถ€ ์ถ”์ƒํ™”), ํ˜ธ์ถœํ•˜๋Š” ๊ณณ์—์„œ๋Š” ๊ตฌ์ฒด์ ์ธ ํƒ€์ž…(์˜ˆ : )์„ ์•„๋Š” ์ƒํƒœ์—์„œ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด, Opaque type์€ ๋ฐ˜๋Œ€๋กœ ๊ตฌํ˜„๋ถ€๋Š” ๊ตฌ์ฒด์ ์ธ ํƒ€์ž…์„ ์•Œ๊ณ  ์žˆ์ง€๋งŒ, ํ˜ธ์ถœํ•˜๋Š” ๊ณณ์—์„œ๋Š” ํŠน์ • ํ”„๋กœํ† ์ฝœ๋งŒ ์•Œ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - Generic - ๊ตฌํ˜„๋ถ€ - ์ถ”์ƒํ™”ํ•˜์—ฌ ์ž‘์„ฑ ํ˜ธ์ถœ๋ถ€ - ๊ตฌ์ฒด์ ์ธ ํƒ€์ž… ์ง€์ • (ํƒ€์ž…์„ ์•Œ ์ˆ˜ ์žˆ์Œ) - Opaque Ty..

  • textsms
Swift5.1 ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„๋ณ„ ์ด๋‹ˆ์…œ๋ผ์ด์ €(Memberwise Initializer)์˜ ๊ธฐ๋ณธ๊ฐ’ ํ•ฉ์„ฑ SE-0242

Swift5.1 ๊ตฌ์กฐ์ฒด ๋ฉค๋ฒ„๋ณ„ ์ด๋‹ˆ์…œ๋ผ์ด์ €(Memberwise Initializer)์˜ ๊ธฐ๋ณธ๊ฐ’ ํ•ฉ์„ฑ SE-0242

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ Swift5.1์—์„œ ์ƒˆ๋กญ๊ฒŒ ๋ณ€๊ฒฝ๋œ ์‚ฌํ•ญ๋“ค์„ ์ •๋ฆฌํ•ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š” ์ฒซ ๋ฒˆ์งธ๋กœ ๋ฉค๋ฒ„์…œ ์ดˆ๊ธฐํ™”(memberwise initializer)์‹œ ๊ธฐ๋ณธ๊ฐ’ ํ•ฉ์„ฑ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ป๊ฒŒ ๋‹ฌ๋ผ์กŒ๋Š”๋ฐ ํ•จ๊ป˜ ์•Œ์•„๋ณด์‹œ์ฃ ~! ๊ธฐ๋ณธ์ ์ธ ๊ตฌ์กฐ์ฒด ๊ฐ•์•„์ง€๋ฅผ ๋งŒ๋“ค์—ˆ์Šต๋‹ˆ๋‹ค. struct Dog { var age: Int var name: String } ์ปดํŒŒ์ผ๋Ÿฌ์—์„œ๋Š” ์•„๋ž˜์™€ ๊ฐ™์ด ์ดˆ๊ธฐํ™”๋ฅผ ํ•ฉ์„ฑํ•ฉ๋‹ˆ๋‹ค. init(age: Int, name: String) ๊ทธ๋Ÿฐ๋ฐ ๋งŒ์•ฝ ๋ชจ๋“  ๊ฐ•์•„์ง€์˜ ๋‚˜์ด์— 0์œผ๋กœ ์ดˆ๊ธฐ๊ฐ’์„ ๊ฐ–๋Š”๋‹ค๊ณ  ๊ฐ€์ • ํ•˜๊ณ  ์ธ์Šคํ„ด์Šค๋ฅผ ์ƒ์„ฑ ํ–ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ธ์Šคํ„ด์Šค ์ƒ์„ฑ์‹œ Swift ์ปดํŒŒ์ผ๋Ÿฌ๊ฐ€ ์ดˆ๊ธฐ ๊ฐ’์ด ์žˆ๋Š” ์†์„ฑ์— ๋Œ€ํ•œ ๊ธฐ๋ณธ๊ฐ’์„ ์ƒ์„ฑํ•  ์ˆ˜ ์—†๊ธฐ ๋•Œ๋ฌธ์— ์—๋Ÿฌ๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. struct Dog { var age..

  • textsms
Swift5.0 SE-0225 ๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ isMultiple(of:)

Swift5.0 SE-0225 ๋ฐฐ์ˆ˜ ๊ตฌํ•˜๊ธฐ isMultiple(of:)

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ isMultiple(of:)์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค. isMultiple(of:)๋Š” ๋ฐฐ์ˆ˜์ธ์ง€ ํŒ๋‹จํ•˜๋Š” ๋ฉ”์„œ๋“œ์ž…๋‹ˆ๋‹ค. ์—ฌ๊ธฐ์„œ ๋ฐฐ์ˆ˜๋Š” ์–ด๋–ค ์ •์ˆ˜์™€ ๋‹ค๋ฅธ ์ •์ˆ˜๋ฅผ ๊ณฑํ–ˆ์„ ๋•Œ ๋‚˜์˜ค๋Š” ์ˆ˜์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด 6 = 2 * 3์ด๋ฏ€๋กœ 6์€ 3์˜ ๋ฐฐ์ˆ˜์ž…๋‹ˆ๋‹ค. ์•„๋ž˜ ์ฝ”๋“œ ์ฒ˜๋Ÿผ ์ด์ „์—๋Š” % ์—ฐ์‚ฐ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ๋ฐฐ์ˆ˜๋ฅผ ํŒ๋‹จํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ์ž‘์„ฑํ–ˆ์—ˆ์ฃ  ๊ทธ๋ ‡๋‹ค๋ฉด isMultiple(of:)์™€ ์–ด๋–ค ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐ ํ•  ์ˆ˜ ์žˆ๊ธธ๋ž˜ ์• ํ”Œ์—์„œ ๊ณต์‹์ ์œผ๋กœ ์ œ๊ณตํ•˜๊ณ  ์žˆ์„๊นŒ์š”? let number = 6 if number % 3 == 0 { print("6์€ 3์˜๋ฐฐ์ˆ˜") } ์ฒซ ๋ฒˆ์งธ๋กœ, 0์œผ๋กœ ๋‚˜๋ˆ„๋Š” ์ƒํ™ฉ์„ ๋ณผ ์ˆ˜ ์žˆ๋Š”๋ฐ์š”. number % 0 == 0 ์€ ๋ฌด์กฐ๊ฑด ์ฐธ ์ž…๋‹ˆ๋‹ค. number.isMultiple(of: 0)์€ nu..

  • textsms
UITextField returnํ‚ค(ํ‚ค๋ณด๋“œ ํ•˜๋‹จ ์˜ค๋ฅธ์ชฝ ํŒŒ๋ž€์ƒ‰๋ฒ„ํŠผ) ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„๋ณด์ž func textFieldShouldReturn

UITextField returnํ‚ค(ํ‚ค๋ณด๋“œ ํ•˜๋‹จ ์˜ค๋ฅธ์ชฝ ํŒŒ๋ž€์ƒ‰๋ฒ„ํŠผ) ๋ˆŒ๋ €์„ ๋•Œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›์•„๋ณด์ž func textFieldShouldReturn

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ UITextField Delegate ๋ฉ”์†Œ๋“œ์ค‘ ํ•˜๋‚˜์ธ func textFieldShouldReturn(_ textField: UITextField) -> Bool ์— ๋Œ€ํ•ด์„œ ์•Œ์•„ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํ‚ค๋ณด๋“œ๊ฐ€ ๋‚˜์˜ค๋Š” ๋งŽ์€ ๊ณณ์—์„œ return(์—”ํ„ฐํ‚ค)ํ‚ค๋ฅผ ๋ˆ„๋ฅธ ํ›„ ์ดํ›„ ๋™์ž‘๋“ค์„ ์ฒ˜๋ฆฌํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ์˜ˆ์‹œ๋กœ ๊ฒ€์ƒ‰์„ ์™„๋ฃŒํ•˜๊ณ ๋‚˜์„œ ๋ฆฌํ„ด ํ‚ค๋ฅผ ๋ˆ„๋ฅด๊ณ  ๋‚œ ํ›„, ํŒ์—…์„ ๋…ธ์ถœ์‹œํ‚ค๊ณ  ์‹ถ๋‹ค๋˜์ง€ ์•„๋‹ˆ๋ฉด ๊ฒ€์ƒ‰ ๊ฒฐ๊ณผ์— ๋Œ€ํ•œ ํ™”๋ฉด์œผ๋กœ ์ด๋™ ํ•˜๊ณ  ์‹ถ์€ ๊ฒฝ์šฐ ๋“ฑ๋“ฑ, ์—ฌ๋Ÿฌ ์ด๋ฒคํŠธ๋“ค์ด ์žˆ์„๊ฒ๋‹ˆ๋‹ค. ์ด๋•Œ ์œ„ ํ•จ์ˆ˜๋ฅผ ์ฑ„ํƒํ•˜๋ฉด ์ฒ˜๋ฆฌ๊ฐ€ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๊ฐ™์ด ๋ณด์‹œ์ฃ  ๋กœ๊ทธ์ธ ํ™”๋ฉด์—์„œ ์ด๋ฉ”์ผ๊ณผ ๋น„๋ฐ€๋ฒˆํ˜ธ๋ฅผ ๋ฐ›์„ ์ˆ˜ ์žˆ๋Š” ํ™”๋ฉด ์ž…๋‹ˆ๋‹ค. returnํ‚ค์— ๋Œ€ํ•œ ์ด๋ฒคํŠธ๋ฅผ ๋ฐ›๊ธฐ ์œ„ํ•ด delegate๋ฅผ ์—ฐ๊ฒฐ ํ–ˆ์Šต๋‹ˆ๋‹ค. impor..

  • textsms
Swift5.0 ํ–ฅํ›„ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ๋Š” Enum(์—ด๊ฑฐํ˜•) switch @unknown ์†์„ฑ ์ฒ˜๋ฆฌ SE-0192

Swift5.0 ํ–ฅํ›„ ๋ณ€๊ฒฝ ๋  ์ˆ˜ ์žˆ๋Š” Enum(์—ด๊ฑฐํ˜•) switch @unknown ์†์„ฑ ์ฒ˜๋ฆฌ SE-0192

์•ˆ๋…•ํ•˜์„ธ์š”~! ์˜ค๋Š˜์€ Enum์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ•ด๋ณด๋ ค๊ณ  ํ•˜๋Š”๋ฐ์š”. ์ด๋ฒˆ Swift5.0์—์„œ ์ถ”๊ฐ€๋œ @unknown ์†์„ฑ์— ๋Œ€ํ•ด์„œ ์ด์•ผ๊ธฐ ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์–ด๋–ค ์—ญํ• ์„ ํ•˜๋Š”์ง€ ๊ฐ™์ด ๋ณด์‹œ์ฃ ~! ๋ณดํ†ต Enum๊ฐ’ ๋ถ„๊ธฐ์ฒ˜๋ฆฌ์‹œ Switch๋ฌธ์„ ๋งŽ์ด ์‚ฌ์šฉํ•˜๋Š”๋ฐ์š”. enum์— ์žˆ๋Š” ๋ชจ๋“  case๋“ค์„ ๋ฌด์กฐ๊ฑด ์ฒ˜๋ฆฌ ํ•ด์•ผํ•ฉ๋‹ˆ๋‹ค. @unknown ์†์„ฑ์„ ์‚ฌ์šฉํ•ด์„œ ๋ฏธ๋ฌ˜ํ•˜๊ฒŒ ๋‹ค๋ฅธ ๋‘ ๊ฐ€์ง€ ๋ฐฉ๋ฒ•์„ ๊ตฌ๋ถ„ํ•  ์ˆ˜ ์žˆ๋Š”๋ฐ์š” ์•„๋ž˜ ์˜ˆ์‹œ๋ฅผ ๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค. ํŒจ์Šค์›Œ๋“œ ์ž…๋ ฅ์‹œ ๋ฐœ์ƒ ํ•  ์ˆ˜ ์žˆ๋Š” ์—๋Ÿฌ๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ enum์œผ๋กœ ํ‘œํ˜„ํ–ˆ์Šต๋‹ˆ๋‹ค enum PasswordError: Error { case short case obvious case simple } ์—๋Ÿฌ ์ฒ˜๋ฆฌ๋ฅผ ํ•˜๋Š” ๋ชจ์Šต์„ ๋ณผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. func showPasswordError(_ error: ..

  • textsms
iOS16 ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ ์ถ”๊ฐ€ (MacOS Ventura ์ด์ƒ)

iOS16 ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ ์ถ”๊ฐ€ (MacOS Ventura ์ด์ƒ)

์•ˆ๋…•ํ•˜์„ธ์š” ์˜ค๋Š˜์€ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ์— ๋Œ€ํ•ด์„œ ์†Œ๊ฐœํ•ด ๋“œ๋ฆฌ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค. ์ด์ „ iOS 16์ด์ „์—๋Š” ๊ธฐ๊ธฐ ํ…Œ์ŠคํŠธ์‹œ ๋ณ„ ๋‹ค๋ฅธ on, off ์„ค์ • ์—†์ด ๊ฐœ๋ฐœ์ž ๊ณ„์ •์—์„œ ํ•ด๋‹น ๋””๋ฐ”์ด์Šค๋ฅผ ๋“ฑ๋ก์„ ํ•˜๋ฉด ์•ฑ ํ…Œ์ŠคํŠธ์‹œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์—ˆ์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด๋ฒˆ iOS16๊ฐ€ ์ ์šฉ๋œ ๋””๋ฐ”์ด์Šค์—์„œ๋Š” ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋ฅผ ์ผœ์•ผ๋งŒ Xcode์—์„œ ๋””๋ฐ”์ด์Šค ํ…Œ์ŠคํŠธ๊ฐ€ ๊ฐ€๋Šฅํ•œ๋ฐ์š”. ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋Š” ๋ฌด์—‡์ด๊ณ , ์™œ ์ถ”๊ฐ€ ๋˜์—ˆ๋Š”์ง€ ์–ด๋–ป๊ฒŒ ์‚ฌ์šฉํ•˜๋Š”์ง€ ๊ฐ„๋‹จํ•˜๊ฒŒ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค~! ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋ž€? iOS 16์—์„œ ์ƒˆ๋กœ์šด ๋ชจ๋“œ๋กœ ์ผ๋ฐ˜์ ์ธ ๊ฐœ๋ฐœ์ž ์›Œํฌํ”Œ๋กœ๋ฅผ ์ง€์›ํ•˜๋Š” ๋ชจ๋“œ์ž…๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๋Š” ๊ธฐ๋ณธ๊ฐ’์œผ๋กœ ๋น„ํ™œ์„ฑํ™”๋˜์–ด ์žˆ๊ณ  ๊ธฐ๊ธฐ๋ฅผ ๋ช…์‹œ์ ์œผ๋กœ ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ ์„ค์ •ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ๋“ฑ๋ก์€ ์‹œ์Šคํ…œ ์—…๋ฐ์ดํŠธ ๋ฐ ์žฌ๋ถ€ํŒ… ์ดํ›„์—๋„ ์œ ์ง€๋ฉ๋‹ˆ๋‹ค. ๊ฐœ๋ฐœ์ž ๋ชจ๋“œ๊ฐ€ ํ•„์š”ํ•œ ์ด์œ ? ๊ฐ•๋ ฅํ•œ ๊ฐœ๋ฐœ์ž ๊ธฐ๋Šฅ์ด ํ•ด..

  • textsms