Я пытаюсь проверить новую настройку платформы CocoaPods, чтобы получить некоторые Pods, и у меня возникли проблемы с использованием Swift в моем проекте Objective-C.
Прежде всего, это CocoaPods prerelease 0.35, вы можете прочитать о том, как его использовать и установить здесь.
Здесь мой текущий подфайл:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'MBProgressHUD'
pod 'SLPagingViewSwift'
MBProgressHUD - общий индикатор поворота, а SLPagingViewSwift - это случайный проект, который я нашел, набрав Swift в поиске 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 Framework, созданную CocoaPods в классе Objective-C?
Устранение неполадок
В основном я пытался использовать различные импортные товары. Apple рекомендует стиль @import
здесь
Но я пробовал несколько других разновидностей:
// Compiler Error
#import <SLPagingViewSwift/SLPagingViewSwift.h>
// Builds Fine -- Doesn't Work
#import <SLPagingViewSwift/SLPagingViewSwift-Swift.h>
#import "SLPagingViewSwift-Swift.h"
Я также время от времени пробовал несколько других библиотек Swift, чтобы узнать, могу ли я что-нибудь щелкнуть.
Я ничего не вижу в проблемах Cocoapods, которые могут это помочь, я также ничего не нашел в их блоге/релизе.
Примечание
Если я добавлю файл SLPagingViewSwift.swift
отдельно к проекту старомодным способом, он отлично работает.