Wednesday, May 6, 2020

Swift : class vs struct

Swift : class vs struct 

struct

- call by value 
- memory 할당 영역 : stack 
- 상속 불가, protocol 구현 
- Codable  사용가능
- NSData Serializable 사용 불가 

Class


- call by reference
- memory 할당 영역 : heap 
- 상속, protocol 구현 가능
- Codable 사용 불가 
- NSData Serializable 사용 가능


Q. Struct 에서 Classs를 Property 를 가지고 있다면 어떻게 동작하는가? 


struct SomeStruct {
    var desc: String
    var image: UIImage
}

SomeStruct 자체는 Copy가 되지만, 그 Property 들은 Call-By-Reference동 동작함으로 Copy시에 주소값만 복사가 된다. 

Q. 언제 Struct를 쓰는가?


JSON Response를 Modeling  할때 주로 사용. 
Serilizable 이 필요 한 경우 사용 불가. 


Q. 언제 Class 를 쓰는가? 


Objc에서도 같이 사용 할때, 
Model을 Serizlize 하여 전송하거나 저장할 필요가 있을 때



No comments:

Post a Comment