[SwiftUI Mater] #15 Protocols

Woozoo·2023년 4월 3일
0

[SwiftUI Review]

목록 보기
30/41
post-custom-banner

요런 간단한뷰를 만들었다고 해봅시다

근데 여기서 잠깜만 DefaultColorTheme의 중 칼라하나를 임시로 바꾸고 싶다고 해보자



요렇게는 어렵잖음


ColorThemeProtocol을 만들어주는 거임
여기서 {get}이 된건 let으로 했을 때 에러가 나서 그럼!

get이나 set이 항상 되게 해주고

이 칼라프로토콜을 적용해주면~

colorTheme에 ColorThemeProtocol을 적용하는 애들만 오게 해줄 수 있음
그리고 colorTheme에 타입만 지정하고 초기값을 안주면

생성하는 시기에 넣어줄수도 있겠죠

요렇게 다른 칼라띰도 만들 수 있습니다



이번엔 class를 만들고 dataSource로 넣어주고 있다고 해보자

이전이랑 유사하죠

근데 여기서 DefaultDataSource에 메소드가 있다고 해보자

이메소드를 아래뷰에서 가지고 올 수 있을까요?


dataSource는 ButtonTextProtocol 타입이기 때문에 다른 메소드를 가져오려면 프로토콜에 채택해주는 방법밖에는 없음!



프로토콜은 따로 나눠서 만들어주고 지금처럼 되어 있다고 해보자

지금처럼 두개의 프로토콜을 채택하는 프로토콜을 만들어줄 수도 있음!
그러면 저렇게 하나로 합쳐지는 거랑 똑같습니다

profile
우주형
post-custom-banner

0개의 댓글