TableViewCell의 중요성
재사용 메커니즘의 중요성 : 재사용을 올바르게 구현하지 않으면 메모리 부족과 성능 저하가 발생할 수 있으므로, 재사용 메커니즘을 이해하고 적절히 구현해야 함.
셀의 재사용 식별자의 중요성 : 셀의 재사용은 식별자를 통해 이루어지며, 고유한 식별자를 사용함으로써 셀의 일관된 재사용을 보장
셀의 생명 주기 이해: 특히 셀이 표시되기 전과 표시된 후에 필요한 초기화 및 정리 작업을 올바르게 처리하는 것이 중요
구조체와 클래스
구조체(struct): 값 타입(value type)으로, 데이터와 메서드를 포함할 수 있는 논리적인 캡슐화 단위. 구조체는 값 복사에 의해 전달됨.
클래스(class): 참조 타입(reference type)으로, 데이터와 메서드를 포함하는 객체. 클래스 인스턴스는 참조에 의해 전달됨.
- 복사와 참조 :
구조체는 값 타입이므로 할당 및 전달 시에는 항상 값이 복사됨. 따라서 새로운 복사본이 생성되는 방식이기에 원본에 영향을 미치지 않음.
클래스는 참조 타입이므로 인스턴스는 참조에 의해 전달됨. 따라서 한 곳에서 객체를 변경하면 다른 곳에서도 변경 사항이 반영됨. - 상속과 프로토콜 준수 :
클래스는 다른 클래스로부터 상속을 받을 수 있음. 때문에 부모 클래스의 속성과 메서드를 자식 클래스에서 재사용할 수 있음.
구조체는 다른 구조체로부터 상속을 받을 수 없지만, 프로토콜을 사용할 수 있음. - 참조 계수 관리 :
클래스는 참조 계수(reference counting)에 의해 메모리 관리됨. 객체가 참조되는 동안 메모리에 유지되며, 모든 참조가 해제될 때 메모리에서 해제됨.
구조체는 값 복사에 의해 전달되므로 참조 계수를 사용하지 않음. 그렇기에 메모리 관리에 대한 추가적인 고려가 불필요. - 불변성과 변경 가능성 :
구조체는 기본적으로 값 타입이므로 인스턴스가 생성된 후에 변경할 수 없음. 그러나 구조체 내부 속성을 변경하려면 메서드에 mutating 키워드를 사용해야함.
클래스는 참조 타입이므로 인스턴스의 속성을 언제든지 변경할 수 있음.
'iOS > TIL (Today I Learned)' 카테고리의 다른 글
[240402] KIOSK #2 | TIL (0) | 2024.04.02 |
---|---|
[240401] KIOSK #1 | TIL (0) | 2024.04.01 |
[240328] Toss 오토레이아웃 따라하기 | TIL (0) | 2024.03.28 |
[240327] .map과 .compactMap의 차이 | TIL (0) | 2024.03.27 |
[240326] 코드로 UI 짜기 'Netflix Log-in' #2 | TIL (2) | 2024.03.26 |