현재 내 프로젝트는 Swift 및 Objectice-C 언어를 모두 사용합니다. 그것을 작동 시키려면, official documentation의 지침을 따랐습니다. 이제 Objective-C에서 Swift를 사용할 수 있습니다. 그 반대의 경우도 마찬가지입니다.Objective C에서 오버로드 된 메서드를 사용하여 Swift Clases 사용
그러나 문제는 일부 Swift 클론에 오버로드 된 메소드가있을 때 발생합니다. Swift는 메서드 오버로드를 지원하지만 Objective-C는 지원하지 않습니다.
예 : 자동은 "동일한"서명 방법이 있기 때문에 컴파일 할 수 없습니다 파일 "MyNameProductModule-Swift.h"를 생성
func random(#lower: Int , upper: Int) -> Int {
return lower + Int(arc4random_uniform(UInt32(upper - lower + 1)))
}
func random(#lower: CGFloat , upper: CGFloat) -> CGFloat {
return CGFloat(arc4random() % 1)/0
}
.
질문 :
a) 중요한 것이 빠졌습니까?
b) 방법의 이름을 바꾸는 것 외에 다른 해결책이 있습니까?
c) Swift로 프레임 워크/라이브러리를 만들려면이 Framework/Library가 Objective C에서도 사용할 수 있도록 오버로드 된 메서드를 쓰지 않도록해야합니까?
감사합니다.
충돌하는 방법의 예를 들려 줄 수 있습니까? – jtbandes