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

๐ŸŽ iOS

(78)
[iOS, Objective-C] prefixheader.pch ์ถ”๊ฐ€ํ•˜๊ธฐ .pch ํŒŒ์ผ์ด๋ž€? Precompile Prefix Header๋กœ ๋ฏธ๋ฆฌ ์ปดํŒŒ์ผ ๋œ ํ—ค๋”๋กœ ์ปดํŒŒ์ผ ์‹œ๊ฐ„์„ ๋‹จ์ถ•์‹œํ‚ค๋Š” ์—ญํ• ์„ ํ•˜๋Š” ํŒŒ์ผ์ž…๋‹ˆ๋‹ค. ํ•ด๋‹น ํŒŒ์ผ์— ์ถ”๊ฐ€ํ•ด์ฃผ๋Š” ์ฝ”๋“œ๋“ค์€ ๋ชจ๋“  ํŒŒ์ผ์— ํฌํ•จ๋˜์–ด ์ปดํŒŒ์ผ๋ฉ๋‹ˆ๋‹ค. *ObjectiveC ํ”„๋กœ์ ํŠธ์—๋งŒ ์กด์žฌ, Swift์—์„œ๋Š” ์‚ฌ์šฉํ•˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ์ด์œ ๋Š” ์•„๋ž˜ ๋งํฌ๋กœ~ Why .pch file not available in swift? In swift, Prefix.pch file is not provided. In my project, I want to declare some macros globally and use through out application. Can anyone give me suggestion how to do it, Where to declar..
[iOS] SceneDelegate ์‚ญ์ œํ•˜๊ธฐ SceneDelegate ์‚ญ์ œํ•˜๋Š” ๋ฒ•์„ ์•Œ์•„๋ณด์ž SceneDelegate๋Š” iOS 13๋ถ€ํ„ฐ ์ƒˆ๋กœ ์ถ”๊ฐ€๋˜์–ด Xcode11๋ถ€ํ„ฐ SceneDelegate๊ฐ€ ๊ธฐ๋ณธ iOS ์•ฑ ํ”„๋กœ์ ํŠธ ํ…œํ”Œ๋ฆฟ์œผ๋กœ ์ž๋™์ถ”๊ฐ€๋ฉ๋‹ˆ๋‹ค. ๊ทธ๋ƒฅ ์ง€์šฐ๊ณ  ๋นŒ๋“œํ•˜๋ฉด ๊ฒ€์€ ํ™”๋ฉด์ด ๋‚˜์˜ค๊ธฐ ๋•Œ๋ฌธ์—, ๋‹ค์Œ ๊ณผ์ •์„ ๋”ฐ๋ฅด๋ฉด ํ™•.์‹ค.ํ•˜.๊ฒŒ. ์‚ญ์ œํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค๐Ÿ‘ป 1. Info.plist์—์„œ Application Scene Manifest ์‚ญ์ œ ์‚ญ์ œ ์•ˆํ•˜๋Š” ๊ฒฝ์šฐ ์•„๋ž˜ ์—๋Ÿฌ๋ฐœ์ƒ >> 13:23:49.218883+0900 FunctionList_Objc[45720:3662506] [SceneConfiguration] Info.plist configuration "Default Configuration" for UIWindowSceneSessionRoleApplic..
[Swift] ํด๋กœ์ €(Closure) vs ๋ธ”๋ก(Block) ํ•จ์ˆ˜ ์บก์ณ๋ฐฉ์‹ ๋น„๊ต ํด๋กœ์ €(Closure) vs ๋ธ”๋ก(Block) ํ•จ์ˆ˜๋ฅผ ๋น„๊ตํ•ด๋ณด์ž Swift์˜ Closure์™€ Objective-C์˜ ๋ธ”๋กํ•จ์ˆ˜๋Š” ์ด๋ฆ„์ด ์—†๋Š” ํ•จ์ˆ˜๋กœ ๊ฐœ๋…์ด ๊ฐ™์Šต๋‹ˆ๋‹ค. ํ•˜์ง€๋งŒ, ๋‘˜์€ ๊ฐ’์„ ์บก์ณํ•˜๋Š” ๋ฐฉ์‹์— ์ฐจ์ด๊ฐ€ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ˜ญ '๊ฐ’์„ ์บก์ณํ•œ๋‹ค'์˜ ์˜๋ฏธ๋ถ€ํ„ฐ ๋‘˜์˜ ์ฐจ์ด์ ์„ ๋น„๊ตํ•ด์„œ ์•Œ์•„๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค. 1. Capturing Values: ํด๋กœ์ € ์บก์ณ๋ž€? ๋จผ์ € ์•„๋ž˜ ์ฝ”๋“œ๋ฅผ ๋ณด๋ฉด, closure๋Š” ๋‚ด๋ถ€์—์„œ ์™ธ๋ถ€ ๋ณ€์ˆ˜์ธ runningTotal, amount ๋ผ๋Š” Value ํƒ€์ž…์˜ ๋ณ€์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์— ๋‘ ๋ณ€์ˆ˜์˜ ๊ฐ’์„ ๋‚ด๋ถ€์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ์ด๋•Œ, runningTotal, amount์˜ ๊ฐ’์ด ์บก์ณ๋˜์—ˆ๋‹ค ๋ผ๊ณ  ํ‘œํ˜„ํ•ฉ๋‹ˆ๋‹ค. ๋ฐ˜๋ฉด์— message๋ž€ ๋ณ€์ˆ˜๋Š” closure ๋‚ด๋ถ€์—์„œ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ์บก์ณ๋˜์ง€ ์•Š์Šต..
[Swift] ํด๋กœ์ ธ(Closure) ๊ธฐ๋ณธ ํด๋กœ์ €(Closure) ๋ž€? - ํด๋กœ์ €(Closure)๋ž€ ์ฝ”๋“œ์—์„œ ์ „๋‹ฌ๋˜๊ณ  ์‚ฌ์šฉ๋  ์ˆ˜ ์žˆ๋Š” ์ž์ฒด์ ์ธ(self-contained) ํ•จ์ˆ˜ ๋ธ”๋ก - ์Šค์œ„ํ”„ํŠธ์—์„œ์˜ ํด๋กœ์ €๋Š” C์™€ Objective-C์—์„œ์˜ ๋ธ”๋ก๊ณผ ์œ ์‚ฌํ•˜๊ณ  ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด์—์„œ๋Š” ๋žŒ๋‹คํ•จ์ˆ˜์™€ ์œ ์‚ฌ - ํด๋ž˜์Šค์™€ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ์ฐธ์กฐ ํƒ€์ž…!! - ํด๋กœ์ € ํ‘œํ˜„์€ ์ตœ์ ํ™” ๋˜์–ด์„œ ๊ฐ„๊ฒฐํ•˜๊ณ  ๋ช…ํ™•, ์ฝ”๋“œ์˜ ๋ช…ํ™•์„ฑ๊ณผ ์˜๋„๋ฅผ ์žƒ์ง€ ์•Š์œผ๋ฉด์„œ๋„ ๋ฌธ๋ฒ•์„ ์ถ•์•ฝํ•ด ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋‹ค์–‘ํ•œ ๋ฌธ๋ฒ•์˜ ์ตœ์ ํ™” ๋ฐฉ๋ฒ•์„ ์ œ๊ณต ํด๋กœ์ €(Closure) ํ•จ์ˆ˜ ํ˜•ํƒœ (Closure Expression Syntax) { (๋งค๊ฐœ๋ณ€์ˆ˜ ๋ชฉ๋ก) -> ๋ฐ˜ํ™˜ํƒ€์ž… in ์‹คํ–‰ ์ฝ”๋“œ } ์˜ˆ๋ฌธ) sorted(by: )๋ฉ”์†Œ๋“œ์™€ ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด ์ •๋ฆฌํ•˜๊ธฐ. reversedNames = names.sorted(b..
[iOS/Swift] ์œ ๋‹ˆ๋ฒ„์…œ ๋งํฌ(Universal Link) ์ ์šฉํ•˜๊ธฐ, ๋™์  ๋งํฌ ์ˆ˜์‹ ํ•˜๊ธฐ ์œ ๋‹ˆ๋ฒ„์…œ ๋งํฌ(Univeral Link) ๋ž€? iOS์—์„œ ๋”ฅ๋งํฌ*๋ฅผ ๊ตฌํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ ์›น์—์„œ ์•ฑ์„ ํ˜ธ์ถœํ•˜๋Š” ๊ธฐ๋Šฅ์ด ํ•„์š”ํ•  ๋•Œ ์‚ฌ์šฉ! *๋”ฅ๋งํฌ(Deep Link) : ํŠน์ • ์ฃผ์†Œ๋‚˜ ๊ฐ’์„ ์ž…๋ ฅํ•˜๋ฉด ์•ฑ์ด ์‹คํ–‰๋˜๊ฑฐ๋‚˜ ์•ฑ ๋‚ด ํŠน์ • ํŽ˜์ด์ง€์— ๋„๋‹ฌํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ๋งํฌ URI ์Šคํ‚ด ๋ฐฉ์‹ : ์•ฑ์— URI ์Šคํ‚ด(scheme) ๊ฐ’์„ ๋“ฑ๋กํ•˜์—ฌ ๋”ฅ๋งํฌ ์‚ฌ์šฉ ์•ฑ๋งํฌ(App Link) : Android ์ œ๊ณต - ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•œ ๋”ฅ๋งํฌ ์‚ฌ์šฉ ์œ ๋‹ˆ๋ฒ„์…œ ๋งํฌ (Universal Link) : iOS ์ œ๊ณต - ๋„๋ฉ”์ธ ์ฃผ์†Œ๋ฅผ ์ด์šฉํ•œ ๋”ฅ๋งํฌ ์‚ฌ์šฉ *Dynamic Link : ํŒŒ์ด์–ด๋ฒ ์ด์Šค์—์„œ ์ œ๊ณตํ•˜๋Š” ๋”ฅ๋งํฌ์˜ ์ผ์ข… ์œ ๋‹ˆ๋ฒ„์…œ ๋งํฌ๋ฅผ ์ด์šฉํ•˜๋ฉด, ์•„๋ž˜ ๊ทธ๋ฆผ๊ณผ ๊ฐ™์ด ์‚ฌ์šฉ์ž๊ฐ€ ๋งํฌ ์ ‘๊ทผ ์‹œ, ์•ฑ์ด ์„ค์น˜๋˜์–ด ์žˆ๋Š” ๊ฒฝ์šฐ ์•ฑ์œผ๋กœ ์ด๋™ํ•˜๊ณ  ์—†์œผ..
[Error, Xcode] iPhone is busy. Preparing debugger support for ~'s iPhone ํ•ด๊ฒฐํ•˜๊ธฐ ERROR - iPhone is busy. Preparing debugger support for ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ํ•ด๊ฒฐํ•˜๊ธฐ ํฐ์œผ๋กœ ๋นŒ๋“œ๋ฅผ ์‹œ๋„ํ•˜๋˜ ์ค‘ ๊ฐ‘์ž๊ธฐ ๋œฌ ์—๋Ÿฌ!! ๋นŒ๋“œ๋Š” Success์ธ๋ฐ, ๋‹ค์Œ๊ณผ ๊ฐ™์€ ์—๋Ÿฌ๋กœ ์‹คํ–‰์ด ์•ˆ ๋˜๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•ด๋ณด์ž......!!!!!!!!! Solution Xcode > Window > Devices and Simulators ํ•˜๋‹จ์˜ + ํด๋ฆญ! Next ํด๋ฆญ! Done ํด๋ฆญ! ๊ทธ๋ฆฌ๋„ ๋‹ค์‹œ ๋นŒ๋“œํ•˜๋ฉด ํ•ธ๋“œํฐ์—์„œ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค! ์œ„ ํ•ด๊ฒฐ๋ฐฉ๋ฒ•์œผ๋กœ ์•ˆ๋˜๋Š” ๊ฒฝ์šฐ, ์•„์ดํฐ ์žฌ์‹œ๋™ํ•˜๋ฉด ๋˜ ์ž˜ ์ž‘๋™ํ•ฉ๋‹ˆ๋‹ค!๐Ÿ˜Š
[iOS] ํ‚คํŒจ๋“œ๊ฐ€ ํ™œ์„ฑํ™”๋  ๋•Œ TextField ๊ฐ€๋ฆฌ๋Š” ๋ฌธ์ œ ํ•ด๊ฒฐํ•˜๊ธฐ, ํ‚คํŒจ๋“œ ํ•ธ๋“ค๋งํ•˜๊ธฐ ํ‚คํŒจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋˜์–ด ์˜ฌ๋ผ์™”์„ ๋•Œ TextField๊ฐ€ ๊ฐ€๋ ค์ง€๋Š” ๋ฌธ์ œ๋ฅผ ํ•ด๊ฒฐํ•˜์ž ๋‹ค์–‘ํ•œ ๋ฐฉ๋ฒ•๋“ค์ด ์žˆ์ง€๋งŒ, NotificationCenter์„ ์‚ฌ์šฉํ•ด์„œ ํ•ด๊ฒฐํ•ด๋ณด์ž:) ์›ํ•˜๋Š” ๊ณผ์ •์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค. PROCESS TextField์„ ํƒ์‹œ ํ‚คํŒจ๋“œ๊ฐ€ ์˜ฌ๋ผ์˜ด (*์•ˆ์˜ฌ๋ผ์˜ค๋Š” ๊ฒฝ์šฐ : Cmd + Shift + k) -> NotificationCenter๋ฅผ ํ†ตํ•ด ํ‚คํŒจ๋“œ๊ฐ€ ์˜ฌ๋ผ์˜ด์„ ์•ฑ์ด ์ธ์ง€ -> ๊ฐ€๋ ค์ง„ TextField๊ฐ€ ๋ณด์ด๋„๋ก ํ™”๋ฉด์ด ์˜ฌ๋ผ๊ฐ -> TextField์— ๊ฐ’ ์ž…๋ ฅ ํ›„ ํ‚คํŒจ๋“œ ๋‚ด๋ฆผ (ํ™”๋ฉด ํ„ฐ์น˜ or Done ํด๋ฆญ) -> ํ‚คํŒจ๋“œ๊ฐ€ ๋‚ด๋ ค๊ฐ์„ NotificationCenter๋ฅผ ํ†ตํ•ด ์•ฑ์ด ์ธ์ง€ -> ํ™”๋ฉด ์›์ƒ๋ณต๊ท€ 1. NotificationCenter - Observer ๋“ฑ๋ก ํ‚คํŒจ๋“œ๊ฐ€ ํ™œ์„ฑํ™” ๋˜๋Š”์ง€ ์•ˆ๋˜๋Š”์ง€ ํƒ์ง€ํ•  ..
[iOS] ์•Œ๊ณ ๋ฆฌ์ฆ˜, ์ฝ”๋”ฉํ…Œ์ŠคํŠธ ์ค€๋น„ํ•˜๊ธฐ - Command Line Tool, LeadLine, Split, Components, map, print ์‚ฌ์šฉํ•˜๊ธฐ Swift๋กœ ์ฝ”๋”ฉ ํ…Œ์ŠคํŠธ ์ค€๋น„, ์„ธํŒ…ํ•˜๊ธฐ Swift ์ž…๋ ฅํ•˜๊ธฐ Swift๋กœ ์ฝ”ํ…Œ๋ฅผ ์ค€๋น„ํ•˜๋ ค๊ณ  ํ•˜๋‹ˆ! ์–ด๋–ป๊ฒŒ ์ž…๋ ฅ์„ ๋ฐ›์•„์„œ ์ฒ˜๋ฆฌํ•˜์ง€...? Swift๋กœ ์ž…๋ ฅ์„ ๋ฐ›๊ธฐ ์œ„ํ•ด์„  project ์ƒ์„ฑ์‹œ, playground, app์ด ์•„๋‹Œ ์ƒˆ๋กœ์šด ํƒฌํ”Œ๋ฆฟ์„ ์‚ฌ์šฉํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค! ์ฝ”ํ…Œ๋ฅผ ์œ„ํ•œ ํ”„๋กœ์ ํŠธ ์ƒ์„ฑ๋ฒ•, Swift์—์„œ ์ž…์ถœ๋ ฅ๋ฐ›๋Š” ๋ฐฉ๋ฒ•์„ ์•Œ๋ ค๋“œ๋ฆฌ๊ฒ ์Šต๋‹ˆ๋‹ค! ๐Ÿ‘ป 1. ํ”„๋กœ์ ํŠธ ๋งŒ๋“ค๊ธฐ ๋จผ์ €, playground๋Š” sandbox์ด๊ธฐ ๋•Œ๋ฌธ์— commandline input์— ์ ‘๊ทผํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค! (*์ƒŒ๋“œ๋ฐ•์Šค(sandbox) : ์™ธ๋ถ€๋กœ๋ถ€ํ„ฐ ๋“ค์–ด์˜จ ํ”„๋กœ๊ทธ๋žจ์ด ๋ณดํ˜ธ๋œ ์˜์—ญ์—์„œ ๋™์ž‘ํ•ด ์‹œ์Šคํ…œ์ด ๋ถ€์ •ํ•˜๊ฒŒ ์กฐ์ž‘๋˜๋Š” ๊ฒƒ์„ ๋ง‰๋Š” ๋ณด์•ˆ ํ˜•ํƒœ) ๋”ฐ๋ผ์„œ, project๋ฅผ ์ƒ์„ฑ ์‹œ ํ…œํ”Œ๋ฆฟ์„ Command Line Tool๋กœ ์„ ํƒํ•˜์—ฌ ์ƒ์„ฑํ•ฉ๋‹ˆ๋‹ค! xc..

๋ฐ˜์‘ํ˜•