반응형
개인적으로 난감한 패턴하나가 걸렸다.
가장 많이 사용하고 있다고 하는데 그 이름이 Delegate패턴이다.
왜 나에게 난감하냐 개인적으로 너무 복잡한 느낌이 든다.
일단 개념을 정리해보자.
Delegate 패턴은 클래스 간에 정보를 전달하거나 특정 이벤트가 발생했을 때 다른 객체에 알리는 데 사용되는 디자인 패턴이다.
한마디로 A클라스에서 B클래스의 함수를 호출할 때 발생하는 패턴인데
내가 진행중인 UITableView에서 cell의 경우 그냥 label을 사용하는 것이 아닌 button이나 추가적인 label을 넣으려면 customCell을 사용해야 한다.
이때 customCell의 버튼을 눌러서 View의 상태를 변경한다고 가정할 때 View의 상태를 변경하는 함수를 customCell에서 호출해야하는 상황이다.
첫 번째로 해야하는 것은 프로토콜을 정의해야한다.
그리고 그 프로토콜을 선언해줘야 한다.
weak var delegate: CustomTableViewCellDelegate?
속성은 약한 참조로 선언하여 메모리 순환 참조를 방지한다.
두 번째로는 프로토콜에 선언된 함수를 목표지의 class에 구현한다.
세번째로는 customCell에서 메서드를 호출하면된다.
말로하면 간단한 것 같은데 왜 난 어지러울까
이 부분이 1:1로 class를 연결했다면 그렇게 어지럽지 않았을것같다.
다만 이 부분이 MVC패턴이 합쳐지고
class가 많아지는 순간 그냥 한방향으로만 호출 할 수 있도록 해야하지 않을까 생각이 든다..
반응형
'Ios > Swift' 카테고리의 다른 글
[Swift] ios에서 디스크에 데이터 저장하기 (0) | 2024.07.10 |
---|---|
[Swift] ViewController 생명주기에 대한 끄적임.. (0) | 2024.07.09 |
[Swift] CustomTableViewCell에 대한 끄적임 (0) | 2024.07.02 |
[Swift] Optional타입을 print하면 Optional(value)라고 나오는 이유 (0) | 2024.06.27 |
[Swift] NSExpression과 expressionValue (0) | 2024.06.25 |