Swift에서 라이브러리를 작성했으며 Objective-C로 작성된 현재 프로젝트로 라이브러리를 가져올 수 없었습니다.
가져 오는 방법이 있습니까?
#import "SCLAlertView.swift" - 'SCLAlertView.swift' file not found
답변
가져와야 TargetName-Swift.h
합니다. 대상 이름입니다. 다른 답변은 클래스 이름을 사용하는 실수를합니다.
이 단일 파일은 주석이 있거나 주석을 @objc
받는 프로젝트의 모든 Swift 클래스에 대한 Objective-C 인터페이스를 정의하는 자동 생성 헤더입니다 NSObject
.
고려 사항 :
-
대상 이름에 공백이 포함 된 경우 (예 : 밑줄로 대체
My Project
됩니다My_Project-Swift.h
) -
대상이 프레임 워크 인 경우 가져와야합니다.
<TargetName/TargetName-Swift.h>
-
Swift 파일이 대상의 구성원인지 확인하십시오
답변
Apple 웹 사이트의 지침 :
동일한 프레임 워크에서 Swift 코드를 Objective-C로 가져 오려면
아래 빌드 설정 에 포장 , 확인하게 정의 모듈
이 프레임 워크 대상에 대한 설정이 설정되어 있음 . 이 구문을 사용하고 적절한 이름으로 대체하여 해당 프레임 워크 대상에서 해당 프레임 워크 대상 내의 Objective-C .m 파일로 Swift 코드를 가져 오십시오.#import “ProductName-Swift.h”
개정:
“ProductName-Swift.h” 는 .m 파일 로만 가져올 수 있습니다 .
대상의 Swift 파일은이 import 문을 포함하는 Objective-C .m 파일에서 볼 수 있습니다.
주기적 참조를 피하려면 Swift를 Objective-C 헤더 파일로 가져 오지 마십시오. 대신, Objective-C 헤더에서 사용하도록 Swift 클래스를 전달할 수 있습니다. Objective-C에서 Swift 클래스를 서브 클래 싱 할 수 없습니다.
답변
수행 할 작업은 다음과 같습니다.
-
Objective-C에서 새 프로젝트 작성
-
새
.swift
파일
만들기- 팝업 창이 나타나 물을 것이다 “헤더를 브리징 목표 -C를 구성하고 싶은 당신을” .
- 예를 선택하십시오 .
-
Xcode 프로젝트 파일을 클릭하십시오
-
빌드 설정을 클릭하십시오
-
검색 표시 줄을 찾아 모듈 정의를 검색하십시오 .
-
값을 예로 변경하십시오 .
-
제품 모듈 이름을 검색 하십시오 .
-
값을 프로젝트 이름으로 변경하십시오.
-
App delegate에서 다음을 추가하십시오.
#import "YourProjectName-Swift.h"
참고 : Swift 파일을 사용할 때마다 다음 줄을 가져와야합니다.
#import "YourProjectName-Swift.h"
답변
답변
프로젝트 파일에서 빌드 설정으로 이동하여 “Objective-C Generated Interface Header Name”을 검색 하십시오 . 해당 특성의 값은 포함해야하는 이름입니다.
“제품 모듈 이름”속성 (위의 속성이 기본적으로 의존하는 속성)이 테스트 / 디버그 / 릴리스 / 등 (내 경우와 같이)에 대해 컴파일하는지에 따라 달라지는 경우이 속성을 해당 속성과 독립적으로 만드십시오. 사용자 정의 이름을 설정하여 변형.
답변
Swift
파일을 제대로 가져 Objective-c
오지 않으면 파일을 가져 오면 이 오류가 발생할 수 있습니다 import
.
참고 : Swift 파일을 외부로 가져올 필요는 없으며 신속한 파일을 처리하는 파일 하나만 가져와야합니다.
Objective-C 프로젝트 내에 Swift 파일 을 작성 / 복사 한 경우 . 브리징 헤더를 자동으로 생성했을 것입니다.
확인 Objective-C Generated Interface Header Name
에 Targets -> Build Settings
.
위의 내용에 KJExpandable-Swift.h
따라 그대로 가져옵니다 .
귀하의가 될 것입니다 TargetName-Swift.h
경우, TargetName
프로젝트 이름 또는 다른 대상에 따라 다릅니다은 추가하고 그것을 실행했을 수 있습니다.
답변
첫 번째 단계:-
프로젝트 대상-> 빌드 설정-> 검색 ( ‘정의’)-> 모듈
업데이트 값 정의 아니오 를 예로 선택하십시오.
“정의 모듈”: YES .
“항상 Swift 표준 라이브러리 임베드”: 예 .
“Objective-C 호환성 헤더 설치”: 예 .
두번째 단계:-
아래와 같이 Objective C “.h”파일에 Swift 파일 클래스 추가
#import <UIKit/UIKit.h>
@class TestViewController(Swift File);
@interface TestViewController(Objective C File) : UIViewController
@end
목표 C “.m”파일에서 ‘ProjectName (귀하의 프로젝트 이름) -Swift.h’가져 오기
//TestViewController.m
#import "TestViewController.h"
/*import ProjectName-Swift.h file to access Swift file here*/
#import "ProjectName-Swift.h"