VC는 UIView, 뷰객체를 관리하는역할
뷰객체가 모여 UIView를 이룸.
뷰객체는 button, label, stepper 등..


IBOutlet의 뷰객체는 클래스 형태로 참조되어 저장된다.
- IBOutlet과 다르게 IBOutlet Collection에는 weak키워드를 사용할 수 없는 이유는 배열이기 때문일까??
배열이 구조체이기에 스택영역에 저장될 것 같지만, 컬렉션 타입(Array, Set, Dictionary), String처럼 메모리 공간을 차지하는 크기가 유동적이라면 힙영역에 저장된다.
- 실제 데이터는 heap 에, 그 데이터를 참조하는 정보는 Stack에 저장되는 것!
- 힙영역에 저장되면 참조타입이라는건데 왜 weak를 사용할 수 없을까??
배열안에 클래스형태로 뷰객체가 참조되어저장되는데 weak를 사용해 메모리에서 해제하면 해당 배열에 속한 다른 뷰객체들도 메모리에서 해제됨.
-> 해제된 후 배열안의 다른 뷰객체를 사용하고자하면 런타임에 에러가 발생하는 것!
정말 유용합니다..!!!