Swift를 사용하여 Swift 프로젝트에서 Objective-C로 작성된 CocoaPod를 사용할 수있는 방법이 있습니까?
브리징 헤더 만 만드나요? 그렇다면 Swift의 CocoaPod에있는 라이브러리에 의해 정의 된 객체, 클래스 및 필드에 액세스 할 수 있습니까?
답변:
귀하의 질문에 대한 기본 대답은 예입니다. CocoaPods로 빌드 된 객관적인 C 코드를 사용할 수 있습니다.
더 중요한 질문은 "이러한 라이브러리를 사용하는 방법"입니다.
이 질문에 대한 답변에 따라 use_frameworks!
당신의 깃발 Podfile
:
하자 당신이 이름을 사용 오브젝티브 C 포드를 원하는 상상 CoolObjectiveCLib
.
포드 파일이 use_frameworks!
플래그를 사용하는 경우 :
// Podfile
use_frameworks!
pod 'CoolObjectiveCLib'
그러면 브리지 헤더 파일을 추가 할 필요가 없습니다.
필요한 것은 Swift 소스 파일에 프레임 워크를 가져 오는 것입니다.
// MyClass.swift
import CoolObjectiveCLib
이제 lib에있는 모든 클래스를 사용할 수 있습니다.
포드 파일이 use_frameworks!
플래그를 사용하지 않는 경우 :
// Podfile
pod 'CoolObjectiveCLib'
그런 다음 브리징 헤더 파일을 만들고 필요한 모든 Objective-C 헤더를 가져와야합니다.
// MyApp-Bridging-Header
#import "CoolObjectiveCLib.h"
이제 가져온 헤더에 정의 된 모든 클래스를 사용할 수 있습니다.
UIView+Toast
포드의 이름입니까? 포드 이름과 일치하는 이름이 가져 오기 프레임 워크를 사용하지 않는 경우.
pod 'iOS-Echarts'
, 다음 수입은 다음과 같이 발생한다 스위프트 파일 : import iOS_Echarts
오브젝티브 C 파일 :#import <iOS_Echarts/iOS-Echarts.h>
podFile에서 use_frameworks
! Pod
종속성 의 폴더 구조에있는 Xcode 내 xxxxxxx-umbrella.h
에서 지원 파일 을 추가 합니다.
당신에 {PROJECT_NAME}-Bridging-Header.h
사용 :
#import "xxxxxxx/xxxxxxx-umbrella.h"
그것은 나를 위해 작동합니다.