이 목표 - C에서 스위프트를 사용하는 방법에 대한 Apple Documentation 참조 :
는 스위프트 클래스는 가 액세스 할 수 오브젝티브 C 클래스의 자손이어야하며, 다음과 같은
Objective-C에서 사용 가능
클래스가 @objc class SomeSwift: NSObject
이어야 함을 의미합니다 (맞습니다!)하지만 스위프트 파일에 에게 모든 것을에 액세스 할 수 없습니다 :
당신이 목표 - C 클래스의 자손 인 스위프트 클래스를 만들 때, 클래스와 회원 - 속성, 메서드, 첨자 및 Objective-C와 호환되는 이니셜 라이저는 Objective-C에서 자동으로 을 사용할 수 있습니다. 같은 등이 제외 스위프트 전용 기능, 사람들은 여기에 나열 :
제네릭
에게
튜플
지능 원시 값 유형없이 스위프트에 정의
열거
구조를
스위프트에 정의
Swift에서 정의 된 최상위 함수
스위프트
에 정의 6,
전역 변수 Typealiases는
스위프트 스타일은
중첩 유형
카레 기능
Reference을 variadics 스위프트에 정의.
따라서 최상위 기능 SomeSwift
을 사용할 수 없습니다.
@objc
에만 사용 할 수있을 때 클래스의 멤버들, @objc 프로토콜 와 :
당신이 선언되기 전에 @objc
를 추가하려고해도, 컴파일러는 그에게 말할 것이다 클래스의 구체적인 확장.
@objc
을 삭제할 것을 제안합니다.
최상위 기능은 지원되지 않습니다. https://developer.apple.com/library/content/documentation/Swift/Conceptual/BuildingCocoaApps/InteractingWithObjective-CAPIs.html#//apple_ref/doc/uid/TP40014216-CH4 -ID35 – jtbandes