광어네 맛집

[Swift] Protocol Optional 처리 본문

Swift

[Swift] Protocol Optional 처리

Lautner Jacob 2023. 12. 7. 12:38
728x90
반응형

이번 글은 간단하게 한번 적어두면 좋을 거 같아서

적어봅니다

 


 

대부분 Delegate로 어떤 값을 전달할 때나 View Rule을 정할 때

Protocol을 주로 사용하죠? 

Protocol은 필수나 Optional로 설정해 줄 수 있어요

 

우선 Swift 파일에서

Objective C에서 같이 사용하고자 하면 코드는 다음과 적으시면 됩니다

@objc protocol fooDelegate {
    @objc optional func didFinishCompletion(name: String, age: Int)
}

 

 

이렇게 적으시면 Objective C에서도 사용하지 않거나 사용할 수 있어요

그렇지만 단점은 Objective C에서 지원하지 않는 Object를 Parameter에 넣게 되면

에러가 뜹니다ㅜㅜ

 

이럴 경우에는 지원하는 타입으로 변경해서 사용해주시면 됩니다!

 


 

또 다른 케이스가 있는데

만약 Objective C 베이스 프로젝트에서 Swift 파일에서만 사용할 

Protocol을 적고 싶으시면 Extension을 이용하면 됩니다

 

protocol fooDelegate {
    func didFinishCompletion(name: String, age: Int)
}

extension fooDelegate {
    func didFinishCompletion(name: String, age: Int) {}
}

 

Extension을 이용해서 미리 적어주는 거에요

return 값이 있을 경우에도 가능하고

사용하시는 방향에 맞게 수정해서 쓰시면 될 거 같습니다!

 

728x90
반응형