Focus On Develop ๐ŸคŸ๐ŸคŸ

[Swift] typealias ๋ณธ๋ฌธ

iOS [Swift]/๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!

[Swift] typealias

๋ˆ„๋ฆฌ๋‹ฌ์ดํ‹€ 2021. 2. 26. 23:11

typealias๋Š”.. ์–ด๋””์„œ ๋งŽ์ด ๋ณธ ๋“ฏ ํ•˜๊ณ , ์‹ค์ œ๋กœ ์†Œ์Šค๋ฅผ ๋ณด๋ฉด ์—ฌ๊ธฐ ์ €๊ธฐ ๋˜๊ฒŒ ๋งŽ๋”๋ผ๊ณ ์š”!

๊ทธ๋ƒฅ ๋Š๋‚Œ์ ์œผ๋กœ ์•„~ ์ด๊ฒŒ ํƒ€์ž…์„ ์žฌ์ •์˜ํ•˜๋Š”๊ฑฐ๊ตฌ๋‚˜~ ํ•˜๊ณ  ์ดํ•ดํ•˜๊ณ  ๋„˜์–ด๊ฐ”์—ˆ๋Š”๋ฐ์š”!

๊ทธ๋ž˜์„œ ์˜ค๋Š˜์€ ๊ฐ„๋‹จํ•˜๊ฒŒ๋‚˜๋งˆ ์ •๋ฆฌ๋ฅผ ํ•ด๋†“์œผ๋ ค๊ณ  ํ•ฉ๋‹ˆ๋‹ค ๐Ÿ’

 

typealias

๊ธฐ์กด์— ์ •์˜๋˜์–ด์žˆ๋Š” ์–ด๋–ค ํƒ€์ž…์„ ์žฌ์ •์˜ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๋” ์ฝ๊ธฐ ์‰ฝ๊ณ , ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค!

ใ…‹ใ…‹ ์˜ˆ๋ฅผ๋“ค๋ฉด ์นœ๊ตฌ ๋ถ€๋ฅผ๋•Œ, ๋ณ„๋ช…์„ ์ง€์–ด์ฃผ๊ณ  ํŽธํ•˜๊ฒŒ ๋ณ„๋ช…๋ถ€๋ฅด๋Š” ๊ฒƒ๊ณผ ๋˜‘๊ฐ™์•„์š” ๐Ÿ˜‚๐Ÿ˜‚

 

์ด๋ฆ„๊ณผ ๋ณ„๋ช…์œผ๋กœ ์ƒ๊ฐํ•ด๋ณด๋ฉด, ๊ธฐ๋ณธ์ ์ธ ๋ฌธ๋ฒ•์€ ์•„๋ž˜์™€ ๊ฐ™์•„์š”!

typealias ๋ณ„๋ช… = ์›๋ž˜์ด๋ฆ„

 

๋ฐ”๋กœ ๋ช‡๊ฐ€์ง€ ์˜ˆ์‹œ๋ฅผ ํ†ตํ•ด์„œ ์‚ดํŽด๋ณผ๊ฒŒ์š”!

typealias Name = String
var name: Name
var nickName: String

String์ด๋ผ๋Š” ํƒ€์ž…์„ Name์ด๋ผ๊ณ  ์“ฐ๊ฒ ๋‹ค๊ณ  ์„ ์–ธํ•ด์ฃผ๋Š”๊ฑฐ์—์š”.

์ฆ‰, name๊ณผ nickName์˜ ํƒ€์ž…์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค! (๋ณ„๋ช… ์ง€์–ด์ค€๋‹ค๊ณ  ์›๋ž˜ ์ด๋ฆ„์ด ๋ฐ”๋€Œ์ง„ ์•Š์ฃ ~~?๐Ÿ˜‚)

 

 

์ด๋ฒˆ์—๋Š” ๊ธฐ๋ณธํƒ€์ž…์ด ์•„๋‹Œ ์‚ฌ์šฉ์ž ์ •์˜ ํƒ€์ž…์œผ๋กœ ์˜ˆ๋ฅผ ๋“ค์–ด๋ณผ๊ฒŒ์š”!

class Car {
    
}
typealias carList = [Car]
var manyCars: carList
var soManyCars: [Car]

Car์ด๋ผ๋Š” ํƒ€์ž…์˜ ๋ฐฐ์—ด์ธ [Car]์€, ์˜๋ฏธ๋กœ ์ ‘๊ทผํ•˜๋ฉด ์‚ฌ์‹ค์ƒ Car๋“ค์˜ ๋ชจ์ž„์ด์ฃ ~? ๊ทธ๋ž˜์„œ carList๋ผ๋Š” ๋ณ„๋ช…์„ ์ง€์–ด์ค€๊ฑฐ์—์š”!

manyCars, soManyCars์˜ ํƒ€์ž…์€ ๋™์ผํ•ฉ๋‹ˆ๋‹ค!

 

 

์ด๋ฒˆ์—๋Š” Generic ํƒ€์ž…์„ ๋ณ„๋ช…์ง€์–ด์ฃผ๋Š” ์˜ˆ์‹œ๋ฅผ ๋ณผ๊ฒŒ์š”!

typealias StringDictionary<T> = Dictionary<String, T>
var dic1: StringDictionary<Int>
var dic2: Dictionary<String, Int>

์ด๋ ‡๊ฒŒ์š”~~ T์˜ ์ž๋ฆฌ์—๋Š” ๋ญ๊ฐ€์™€๋„ ๋˜๋Š”๋ฐ key๊ฐ’์€ String์ด์•ผ. ์•ฝ๊ฐ„ ์ด๋Ÿฐ ํƒ€์ž…์ธ๊ฑฐ์ฃ  ใ…‹ใ…‹

์—ฌ๊ธฐ์„œ๋„ ๋ฌผ๋ก  dic1๊ณผ dic2์˜ ํƒ€์ž…์€ ๋™์ผํ•˜๊ตฌ์š”~~

 

 

์ด์ œ ๊ธฐ๋ณธ์ ์œผ๋กœ typealias๋ผ๋Š” ๋…€์„์ด ๋ญ”์ง€ ์•Œ๊ฒ ์ฃ ~~? ใ…‹ใ…‹ ๋ณ„๋ช…์ง€์–ด์ฃผ๋Š” ๊ฑฐ์—์š” ๐Ÿ‘ ์‰ฝ๊ฒŒ ๊ฐ€์ž๊ตฌ์šฉ~~

 

 

์‚ด~์ง๋งŒ ๋‚œ์ด๋„๋ฅผ ์˜ฌ๋ ค์„œ..!!

typealias CompletionHandler = (Data, HTTPURLResponse, Error) -> Void

func callApi(name: String, Handler: CompletionHandler) {
    
}

func callApi(name: String, Handler: (Data, HTTPURLResponse, Error) -> Void) {
    
}

์‹ค์ œ๋กœ๋Š” ์ด๋ ‡๊ฒŒ ํด๋กœ์ € ํ˜•ํƒœ๋ฅผ ๋งŽ์ด ์‚ฌ์šฉํ•˜๊ธฐ๋„ ํ•œ๋‹ต๋‹ˆ๋‹ค!

์œ„์˜ callApi๋Š” ๋™์ผํ•œ ํŒŒ๋ผ๋ฏธํ„ฐ๋ฅผ ๊ฐ€์ง€๋Š” ๋ฉ”์†Œ๋“œ์ธ๋ฐ, ์–ด๋–ค๊ฒŒ ์ฝ๊ธฐ ํŽธํ•˜์‹ ๊ฐ€์š”~~?

๋„ค!! ๋‹น์—ฐํžˆ ์œ„์— ๊ฒƒ์ด์—์š”!! ์ด๊ฒŒ ๋ฐ”๋กœ ์šฐ๋ฆฌ๊ฐ€ typealias๋ฅผ ์“ฐ๋Š” ์ด์œ  ๐ŸคŸ๐ŸคŸ

 

 

์ œ์ผ ์ฒ˜์Œ์— typealias์˜ ๊ฐœ๋…์„

"๊ธฐ์กด์— ์ •์˜๋˜์–ด์žˆ๋Š” ์–ด๋–ค ํƒ€์ž…์„ ์žฌ์ •์˜ํ•ด์„œ ์ฝ”๋“œ๋ฅผ ๋” ์ฝ๊ธฐ ์‰ฝ๊ณ , ์ดํ•ดํ•˜๊ธฐ ์‰ฝ๋„๋ก ๋ช…ํ™•ํ•˜๊ฒŒ ํ‘œํ˜„ํ•˜๋Š” ๋ฐฉ๋ฒ•์ž…๋‹ˆ๋‹ค!"

์ด๋ ‡๊ฒŒ ๋ง์”€๋“œ๋ ธ๋Š”๋ฐ, ์ด์ œ๋Š” ์ดํ•ด๊ฐ€ ๋˜์‹œ์ฃ ~~? ๐Ÿ˜Ž

 

 

์˜ค๋Š˜๋„ ๋ˆ„๊ตฐ๊ฐ€์—๊ฒŒ ๋„์›€์ด ๋˜์—ˆ๊ธธ ๋ฐ”๋ž˜์š” ๐Ÿ™

 

 

'iOS [Swift] > ๊ธฐ์ดˆ๋ฅผ ํƒ„ํƒ„ํžˆ!' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

[Swift] Audio Recording  (0) 2021.03.01
[Swift] CaseIterable  (0) 2021.02.27
[Swift] Codable  (0) 2021.02.26
[Swift] CodingKey  (0) 2021.02.26
[Swift] Cloud Firestore(2) ์‹ค์Šตํ•ด๋ณด๊ธฐ  (0) 2021.02.10
Comments