광어네 맛집
[Swift] Protocol Optional 처리 본문
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
반응형