23.11.09 ARC 개념정리 / TableVie 개념정리
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에서 또는 코드로 구현할 수 있습니다.