๋ชฉ๋กSwift (7)

suvera-dev ๐Ÿฅฆ

iOS ) URLSession ์•Œ์•„๋ณด๊ธฐ

์˜ค๋Š˜์€ ์ œ๊ฐ€ ์ตœ๊ทผ์— ์–ผ๋ ๋šฑ๋•… ์“ฐ๊ฒŒ ๋œ URLSession์„ ๊ณต๋ถ€ํ•ด๋ณด๋Š” ์‹œ๊ฐ„์„ ๊ฐ€์ ธ๋ณด๋„๋ก ํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค ! ์„ธ๋ฏธ๋‚˜ ๋•Œ Alamofire ๋ฐฐ์šฐ๊ณ .. ํ•ฉ๋™ ์„ธ๋ฏธ๋‚˜์—์„œ๋Š” Moya ํ•˜๊ณ .. ์•ฑ์žผ์—์„œ๋Š” ์–ด์ฉŒ๋‹ค URLSession์„ ํ•˜๊ฒŒ ๋˜์—ˆ๋”๋‹ˆ ๋Œ€ํ˜ผ๋ž€ ๐ŸŒ€ ์„œ๋ฒ„ํ†ต์‹  ๋„ˆ ๋Œ€์ฒด ๋ญ”๋ฐ.. ์ด๋Œ€๋กœ๋Š” ์•ˆ๋˜๊ฒ ๋‹ค ์‹ถ์–ด์„œ URLSession, Alamofire, Moya ์ˆœ์œผ๋กœ ๋‹ค์‹œ ๊ฐœ๋… ๋ถ€ํ„ฐ ์‹ค์ „๊นŒ์ง€ .. ๊ณต๋ถ€ํ•ด๋ณด๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค :) ์ผ๋‹จ ์ œ๊ฐ€ ๊ฐ€์žฅ ์ตœ๊ทผ์— URLSession์„ ์‚ฌ์šฉํ•˜์—ฌ ํ”„๋กœ์ ํŠธ๋ฅผ ํ–ˆ๋Š”๋ฐ ๊ทธ๋ƒฅ.. ์•„๋ฌด ๊ฒƒ๋„ ๋ชจ๋ฅด๊ณ  ํ›„๋ฃจ๋ฃฉ ์จ๋ฒ„๋ ธ๋„ค์š”... URLSession iOS ์•ฑ์—์„œ ์„œ๋ฒ„์™€ ํ†ต์‹ ํ•˜๊ธฐ ์œ„ํ•ด ์• ํ”Œ์€ URLSession์ด๋ผ๋Š” API๋ฅผ ์ œ๊ณตํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. iOS ์•ฑ ํ†ต์‹ ์—์„œ ์œ ๋ช…ํ•œ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์ธ Alamofire์˜ ๊ธฐ๋ฐ˜์ด ๋˜..

iOS 2022. 2. 28. 00:19
Swift ) ๊ธฐ์ดˆ ๋ฌธ๋ฒ• 6์ผ์ฐจ - Class ์™€ Struct

์ง€๊ธˆ๊นŒ์ง€๋Š” ํด๋ž˜์Šค์™€ ๊ตฌ์กฐ์ฒด์˜ ์ฐจ์ด๋ฅผ ์ •ํ™•ํ•˜๊ฒŒ ๋ชจ๋ฅด๊ณ  ๊ทธ๋ƒฅ ViewController๋Š” Class.. Model ๋งŒ๋“ค ๋•Œ๋Š” Struct .. ๋ฅผ ์จ์™”์Šต๋‹ˆ๋‹ค ! ํ•˜์ง€๋งŒ.. ์ด์ œ๋Š” ์กฐ๊ธˆ์ด๋ผ๋„... ์•Œ์•„์•ผ ํ•  ๋•Œ๊ฐ€ ์˜จ ๊ฒƒ ๊ฐ™๋„ค์š” ^_^ ๐Ÿ“Œ Class์™€ Struct์˜ ๊ณตํ†ต์ ์€ ? ๊ฐ’์„ ์ €์žฅํ•  ํ”„๋กœํผํ‹ฐ๋ฅผ ์„ ์–ธํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ํ•จ์ˆ˜์  ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ๋ฉ”์„œ๋“œ๋ฅผ ์„ ์–ธ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๋‚ด๋ถ€ ๊ฐ’์—. ์„ ์‚ฌ์šฉํ•˜์—ฌ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ”„๋กœํผํ‹ฐ ๊ฐ’์— ์ ‘๊ทผ ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด ์ดˆ๊ธฐ ์ƒํƒœ๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. extension์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. Protocol์„ ์ฑ„ํƒํ•˜์—ฌ ๊ธฐ๋Šฅ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ๐Ÿ“Œ Class์™€ Struct์˜ ์ฐจ์ด์ ์€ ? ๐ŸŽฏ Class ์ฐธ์กฐ ํƒ€์ž… ARC๋กœ ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ ๊ฐ™์€ ํด๋ž˜์Šค ์ธ์Šคํ„ด์Šค..

Language/Swift 2022. 2. 10. 03:11
Swift ) Closure

์˜ค๋Š˜์€ ์Šคํ„ฐ๋”” ์นœ๊ตฌ๋“ค๊ณผ ํ•จ๊ป˜ ํด๋กœ์ €์— ๋Œ€ํ•œ ๋‚ด์šฉ์„ ๊ณต๋ถ€ํ•ด๋ณด์•˜์Šต๋‹ˆ๋‹ค ! ๐ŸŒ€Closure ๋ž€? - ์ผ์ • ๊ธฐ๋Šฅ์„ ํ•˜๋Š” ์ฝ”๋“œ๋ฅผ ํ•˜๋‚˜์˜ ๋ธ”๋ก์œผ๋กœ ๋ชจ์•„๋†“์€ ๊ฒƒ - func ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋งŒ๋“ค์—ˆ๋˜ ํ•จ์ˆ˜ : named Closure - ์ผ๋ฐ˜์ ์ธ ํด๋กœ์ € : Unnamed Closure๋ฅผ ์ง€์นญ { (Parameters) -> Return Type in ์‹คํ–‰ ๊ตฌ๋ฌธ } ๐ŸŒฟ1๊ธ‰ ๊ฐ์ฒด๋กœ์„œ์˜ ํŠน์ง• - ํด๋กœ์ €๋ฅผ ๋ณ€์ˆ˜๋‚˜ ์ƒ์ˆ˜์— ๋Œ€์ž…ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ•จ์ˆ˜์˜ ํŒŒ๋ผ๋ฏธํ„ฐ ํƒ€์ž…์œผ๋กœ ํด๋กœ์ €๋ฅผ ์ „๋‹ฌํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. - ํ•จ์ˆ˜์˜ ๋ฐ˜ํ™˜ ํƒ€์ž…์œผ๋กœ ํด๋กœ์ €๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค. ์ผ๋ฐ˜ ํ•จ์ˆ˜์™€ Closure์˜ ์‚ฌ์šฉ ๋ฐฉ์‹์˜ ์ฐจ์ด : Closure๋Š” ํ•จ์ˆ˜๋ฅผ func ํ‚ค์›Œ๋“œ๋กœ ์„ ์–ธํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ, ํ•จ์ˆ˜๋ฅผ ๋ณ€์ˆ˜์— ์„ ์–ธํ•˜๋Š” ํ˜•ํƒœ๋ฅผ ์ทจํ•˜๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. - ์ผ๋ฐ˜์ ..

Language/Swift 2022. 2. 9. 01:41
Swift ) @discardableResult ๋ž€?

์˜ค๋Š˜์€ @discardableResult ๋ผ๋Š” ์นœ๊ตฌ์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด๊ฒ ์Šต๋‹ˆ๋‹ค ! ์ œ๊ฐ€ ํ•˜๊ณ ์žˆ๋Š” ํ”„๋กœ์ ํŠธ ์ฝ”๋“œ์— ์“ฐ์ด๋Š” ๊ฒƒ์„ ๋ณด๊ณ  ์ €๋„ ๊ถ๊ธˆํ•ด์ ธ์„œ ๊ฐ€์ ธ์™€๋ดค์Šต๋‹ˆ๋‹ค ! ๐ŸŒ€ @discardableResult - ์˜๋ฏธ: ๊ฒฐ๊ณผ๊ฐ’์„ discardable ํ•  ์ˆ˜ ์žˆ๋‹ค. ์ฆ‰ ๊ฒฐ๊ณผ๊ฐ’์„ ๋ฒ„๋ฆด ์ˆ˜ ์žˆ๋‹ค. ๋ผ๋Š” ์˜๋ฏธ - ํ•จ์ˆ˜์˜ return๊ฐ’์„ discadable ์‹œํ‚ฌ ์ˆ˜ ์žˆ๋‹ค -> return ๊ฐ’์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š์•„๋„ warning ๋ฉ”์„ธ์ง€๋ฅผ ๋‚˜์˜ค์ง€ ์•Š๋„๋ก ์„ค์ • ๊ฐœ๋ฐœ์„ ํ•˜๋‹ค๋ณด๋ฉด ์—ฌ๋Ÿฌ๊ฐ€์ง€ Warning์„ ๋ณด๊ฒŒ๋˜๋Š”๋ฐ์š” ! ใ…Žใ…Ž ๊ทธ์ค‘์—์„œ ์•„๋ž˜์™€ ๊ฐ™์ด Result of call to '์–ด์ฉŒ๊ตฌ' is unused ๋ผ๋Š” ๊ฒฝ๊ณ ๋ฅผ ๋ณธ์ ์ด ์žˆ์„ ๊ฑฐ์—์š” ! ๊ฒฐ๊ณผ๋ฅผ return ํ–ˆ์ง€๋งŒ ๊ฒฐ๊ณผ๊ฐ’์ด ์‚ฌ์šฉ๋˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ์— ๋œจ๋Š” ๊ฒฝ๊ณ ์ž…๋‹ˆ๋‹ค ! ๊ทธ๋ ‡์ง€๋งŒ.. ! ..

Language/Swift 2022. 2. 8. 10:37