2023. 11. 9. 21:10ㆍIOS [ 개념정리 ]
ARC 는 Automatic Reference Counting 의 약자이다.
핵심개념은 참조형태를 추적하여서 , 현재 사용하지않아도 되는 참조 프로세스들을
자동으로 메모리에서 제거해줌으로써 메모리 누수를 방지해주는 것이다.
Swift에서는 이 기능이 기본적으로 활성화 되어있고
개발자가 수동으로 처리해주지않아도된다.
다만 강한 순환참조와 같은 특정상황에서는 ARC를 수동으로 제어하는 방법도 고려해볼 수 있다.
.
.
.
테이블뷰는 데이터소스 & 델리게이트로 이루어진 UI적 요소이다.
테이블 뷰를 사용함으로써 UI를 조금더 쉽게 관리하고 동적으로 표현 가능하다.
데이터소스 & 델리게이트에대한 설명은 다음과 같다.
데이터 소스 (Data Source):
- 테이블 뷰에 표시되는 데이터의 원본을 정의함
- 데이터 소스는 UITableViewDataSource 프로토콜을 채택한다
- 여러종류의 메서드를 통해 테이블뷰의 UI를 재현해낸다
( ex : numberOfRowsInSection[섹션별로 행의 갯수를 반환] , cellForRowAt[주어진 인덱스패스에 대한 셀을 반환]... )
예시 코드 👇
class MyTableViewController: UITableViewController, UITableViewDataSource {
// 데이터 소스로 사용될 배열
let data = ["Item 1", "Item 2", "Item 3"]
// 섹션별 행의 개수를 반환하는 메서드
func tableView(_ tableView: UITableView, numberOfRowsInSection section: Int) -> Int {
return data.count
}
// 주어진 인덱스 패스에 대한 셀을 반환하는 메서드
func tableView(_ tableView: UITableView, cellForRowAt indexPath: IndexPath) -> UITableViewCell {
let cell = tableView.dequeueReusableCell(withIdentifier: "Cell", for: indexPath)
cell.textLabel?.text = data[indexPath.row]
return cell
}
}
델리게이트 (Delegate):
- 테이블 뷰의 동작 / 모양을 커스터마이징하는데 사용한다
- 델리게이트는 UITableViewDelegate프로토콜을 채택한다.
- 여러종류의 메서드를 통해 기능을 호출한다
( ex: didSelectRowAt[특정 행이 선택되었을 때 호출]...)
예시 코드 👇
class MyTableViewController: UITableViewController, UITableViewDataSource, UITableViewDelegate {
// ... (이전의 코드)
// 특정 행이 선택되었을 때 호출되는 메서드
func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
print("Selected item: \(data[indexPath.row])")
}
}
위의 코드에서 "Cell"은 재사용 가능한 셀을 식별하기 위한 식별자로, 이에 대한 셀 디자인은 Interface Builder에서 또는 코드로 구현할 수 있습니다.
'IOS [ 개념정리 ]' 카테고리의 다른 글
23.11.15 @Main의 개념 / iOS 앱 내에서 메모리 관리를 최적화하기 위한 방법 / 고차함수(map, filter, reduce)의 개념 (0) | 2023.11.15 |
---|---|
23.11.10 hugging과 resistance의 개념정리 / 뷰 컨트롤러의 라이프 사이클 개념정리 (0) | 2023.11.10 |
23.11.08 앱의 상태 / 스토리보드를 이용할때의 장단점 (0) | 2023.11.08 |
23.11.1 옵셔널(Optional)의 개념과 확장(Extension)의 개념 (1) | 2023.11.01 |
23.10.31 Grand Central Dispatch (GCD)와 Operation Queue의 차이점 / Delegate pattern 에 대한 설명 (1) | 2023.11.01 |