iOS swift ๋ฌธ๋ฒ• 25์ผ์ฐจ๐Ÿค

๋ณ„์นญ typealias

import UIKit

protocol Naming {
    func getName() -> String
}

protocol Aging {
    func getAge() -> Int
}

// ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ฃผ๋Š” ๊ฒƒ!
typealias Friendable = Naming & Aging

typealias FullNaming = Naming

struct Friend : Friendable {
    func getName() -> String {
        return self.name
    }
    
    func getAge() -> Int {
        return self.age
    }
    var name : String
    var age : Int
    
}

/*
 ์œ„์˜ ์ฝ”๋“œ๋Š”
 struct Friend : Naming & Aging {
 }
 ๊ณผ ์ •ํ™•ํžˆ ๋™์ผํ•˜๋‹ค
 */

// string,class,struct,array,closure๋“ฑ๋„ typealias๋กœ ์ด๋ฆ„์„ ๋ฐ”๊ฟ”์ค„ ์ˆ˜ ์žˆ๋‹ค.


//string ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
typealias FriendName = String

var friendName : FriendName = "๊น€์šฉ์žฌ"


// array ์ด๋ฆ„ ๋ฐ”๊พธ๊ธฐ
typealias Friends = [Friend]

var myFriendArray : Friends = []


// closure๋„ ๋ณ„์นญ์œผ๋กœ ๋ฐ”๊ฟ”์ฃผ์ž

typealias StringBlock = (String) -> Void

func sayHi(completion : (String) -> Void){
    print("์•ˆ๋…•ํ•˜์„ธ์š”?")
    completion("์˜ค๋Š˜๋„ ๋นก์ฝ”๋”ฉ ํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”?")
}

func sayHi2(completion : StringBlock){
    print("์•ˆ๋…•ํ•˜์„ธ์š”?")
    completion("์˜ค๋Š˜๋„ ๋นก์ฝ”๋”ฉ ํ•˜๊ณ  ๊ณ„์‹ ๊ฐ€์š”?")
}

sayHi2(completion: {saying in
    print("์—ฌ๊ธฐ์„œ ๋ฐ›์Œ : ", saying)
})


//
typealias MyType = MyClass.MY_TYPE

class MyClass {
    enum MY_TYPE {
        case DOG
        case CAT
        case BIRD
    }
    var myType = MyType.DOG
}

var myClass = MyClass()

myClass.myType = MyType.DOG

print("myClas.myType: ",myClass.myType)

์ข‹์€ ์›นํŽ˜์ด์ง€ ์ฆ๊ฒจ์ฐพ๊ธฐ