이전 Objective-C 프로젝트가 있고 새 Swift 함수와 개체를 호출하고 싶습니다. " <ProjectName>-Bridging-Header.h"및 " <ProjectName>-Swift.h" 파일을 만들었습니다.
Swift에서 Objective-C로 함수를 호출하기는 쉬웠지만 반대로 문제가 있습니다.
그래서 간단한 클래스 "System.Swift"를 만들었습니다.
import Foundation
@objc class System : NSObject {
@objc func printSome() {
println("Print line System");
}
}
이제 여기 에 문서를 따르려고 노력 했으며 <...>-Swift.h파일 내부에 이것을 작성했습니다.
@class System;
@interface System : NSObject
-(void)printSome;
@end
Objective-C 클래스 내에서 가져 왔습니다. 이 시점에서 내 Objective-C 코드의 Objective C 클래스 (현재 UIViewController) 내에서 "printSome"메서드를 호출하려고했습니다.
- (void)viewDidLoad
{
[super viewDidLoad];
System * sis = [[System alloc] init];
[sis printSome];
//any additional setup after loading the view from its nib.
}
이제 다음과 같은 오류가 있습니다.
아키텍처 i386에 대한 정의되지 않은 기호 : " OBJC_CLASS $ _System", 참조 : "ObjectiveC_Class_That_Call_Swift_Object"의 objc-class-ref : 아키텍처 i386에 대한 기호를 찾을 수 없음 clang : 오류 : 링커 명령이 종료 코드 1로 실패했습니다 (사용 -v 호출 참조)