Objective-C Project에서 Swift Pod Framework 가져오기 및 사용 방법
일부 포드를 실행하기 위해 코코아팟의 새로운 프레임워크 설정을 확인하려고 했는데 목표-C 프로젝트에서 스위프트의 것을 사용하는 데 문제가 있습니다.
먼저, 코코아팟 0.35 프리릴리즈입니다. 사용법 및 설치 방법에 대해서는 여기에서 확인하실 수 있습니다.
현재 팟파일은 다음과 같습니다.
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'MBProgressHUD'
pod 'SLPagingViewSwift'
MB진행률HUD는 일반적인 회전 지표이며, SLPagingViewSwift는 Swift를 코코팟 검색에 입력하여 찾은 임의의 프로젝트입니다.여기 있습니다.ViewController.m
프로젝트에서:
#import "ViewController.h"
@import SLPagingViewSwift;
@import MBProgressHUD;
@interface ViewController ()
@end
@implementation ViewController
- (void)viewDidAppear:(BOOL)animated
{
[super viewDidAppear:animated];
// Works just fine
MBProgressHUD *hud = [[MBProgressHUD alloc] initWithView:self.view];
[self.view addSubview:hud];
[hud show:YES];
// Causes Error -- Won't build
SLPagingViewSwift *sl = [[SLPagingViewSwift alloc] init];
}
@end
여기 있습니다.SLPagingViewSwift
선언:
class SLPagingViewSwift: UIViewController, UIScrollViewDelegate {
보다시피, 이것은 다음으로부터 물려받은 것입니다.UIViewController
, 그래서 그냥 할당하고 초기화하는 것은 문제가 되지 않습니다.파일만 따로 파일로 추가하면 위 코드는 잘 실행됩니다.효과가 있다는 걸요.
tl;dr
CocoaPods에서 만든 순수한 Swift Framework를 순수 Objective-C 클래스에서 사용하려면 어떻게 해야 합니까?
곤란촬영
주로 저는 다양한 수입품을 시도해 왔습니다.애플은 다음을 추천합니다.@import
스타일리시하게
하지만 저는 다른 여러 가지 종류를 시도해 왔습니다.
// Compiler Error
#import <SLPagingViewSwift/SLPagingViewSwift.h>
// Builds Fine -- Doesn't Work
#import <SLPagingViewSwift/SLPagingViewSwift-Swift.h>
#import "SLPagingViewSwift-Swift.h"
저도 가끔 다른 스위프트 라이브러리 몇 개를 시도해 보았습니다. 클릭할 수 있는 것이 있는지 확인하려고요.
Cocoapods 문제에 대해 도움이 될 만한 내용을 찾을 수 없습니다. 또한 블로그나 릴리즈 관련 내용을 찾을 수 없었습니다.
메모
추가하면.SLPagingViewSwift.swift
기존 방식으로 프로젝트에 별도로 파일을 제출하면 잘 작동합니다.
swift class를 public으로 선언해야 한다고 생각합니다. 그렇지 않으면 내부 클래스로 취급되어 동일한 모듈 내에서만 볼 수 있고, 이것이 파일은 작동하지만 프레임워크는 작동하지 않는 동일한 프로젝트에 추가하는 이유가 될 수 있습니다.또 하나 생각나는 것은 프레임워크가 objective-c 클래스 내에서 볼 수 있도록 클래스 선언 앞에 @objc를 추가해야 할 수도 있다는 것입니다.목표 c와 swift 간의 혼합과 일치에 대한 Apple의 가이드를 읽어보면 외부 프레임워크를 가져올 때 가져오는 프레임워크의 Define Module build 설정이 Yes로 설정되어 있는지 확인해야 합니다.그 옵션들 중 어떤 것이라도 확인해 보셨나요?
그냥 사용하세요.
@import SwiftModuleName;
구문, 그리고 사용할 함수가 public(및 @objc)인지 확인합니다.
제 경우 podfile(이전 프로젝트)에 "use_frameworks!"가 없었습니다.
추가해서 그렇게 수입품을 사용할 수 있었습니다.
#가져오기 "PODNAME-Swift.h"
포드의 수업을 이용합니다.
하지만 결국 저는 객관적인 설명이 부족해서 그 신속한 포드를 사용할 수 없었습니다.저는 이것이 많은 경우에 이슈가 될 것이라고 믿습니다.
언급URL : https://stackoverflow.com/questions/27995691/how-to-import-and-use-swift-pod-framework-in-objective-c-project
'programing' 카테고리의 다른 글
tinymce를 이용한 카테고리 링크 (0) | 2023.10.14 |
---|---|
액세스-제어-허용-오리진 작동하지 않음 Google Cloud Functions GCF (0) | 2023.10.14 |
MariaDB 설치 시 도커 빌드 고착 (0) | 2023.10.14 |
요청의 자격 증명 모드가 '포함'인 경우 응답의 헤더는 와일드카드 '*'이 되어서는 안 됩니다. (0) | 2023.10.14 |
Laravel 상위 행을 삭제하거나 업데이트할 수 없음: 외부 키 제약 조건이 실패함 (0) | 2023.10.14 |