Как импортировать и использовать Swift Pod Framework в проекте Objective-C



Я пытался проверить CocoaPods новую настройку фреймворка, чтобы получить некоторые стручки, и у меня возникли проблемы с использованием Swift в моем проекте Objective-C.



во-первых, это CocoaPods prerelease 0.35, вы можете прочитать о том, как использовать и установить его здесь.



вот мой текущий Подфайл:



source 'https://github.com/CocoaPods/Specs.git'

platform :ios, '8.0'

pod 'MBProgressHUD'
pod 'SLPagingViewSwift'


MBProgressHUD общий вращающийся индикатор, и SLPagingViewSwift случайный проект я нашел, введя Свифт в в cocoapods поиск. Вот это 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



как я могу использовать чистый Swift фреймворк, созданный CocoaPods в чистом Objective-C класс?



устранение неисправностей



в основном я пробовал различные импорта. Компания Apple рекомендует @import стиль здесь



enter image description here



но я пробовал несколько других сортов:



// Compiler Error
#import <SLPagingViewSwift/SLPagingViewSwift.h>

// Builds Fine -- Doesn't Work
#import <SLPagingViewSwift/SLPagingViewSwift-Swift.h>
#import "SLPagingViewSwift-Swift.h"


Я также время от времени пробовал несколько других библиотек Swift, чтобы узнать, могу ли я что-нибудь щелкнуть.



Я не вижу ничего на Cocoapods вопросы, которые могут помочь этому, я также ничего не нашел в своем блоге / релизе.



Примечание



если я добавлю SLPagingViewSwift.swift файл отдельно для проекта по старинке, он работает просто отлично.

571   1  

1 ответ:

Я думаю, что вы должны объявить Свифт класса как public, иначе это трактуется как внутренний класс и можно было увидеть только в одном модуле, и это может быть причиной, почему при добавлении его в тот же проект, файлы работают, но в рамках не. Другая вещь, которая приходит в голову, что база может понадобиться, чтобы добавить @взаимодействию их в передней части класса так, что его можно рассматривать в Objective-С классов. Также читаем руководство Apple по смешивать и сочетать между objective c и swift он говорит, что при импорте внешней платформы вам нужно убедиться, что параметр Defines Module build для импортируемой платформы установлен в Yes. Вы проверили с любым из этих вариантов?

Comments

    Ничего не найдено.