Comment faire pour importer et utiliser Swift Pod Cadre en Objective-C Projet

J'ai essayé de la caisse CocoaPods nouveau cadre, le programme d'installation pour obtenir quelques Gousses d'aller et je vais avoir des soucis avec la Swift dans mon Objective-C projet.

Tout d'abord, c'est CocoaPods préliminaire de 0,35, vous pouvez lire sur la façon d'utiliser et d'installer ici.

Voici mon Podfile:

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

platform :ios, '8.0'

pod 'MBProgressHUD'
pod 'SLPagingViewSwift'

MBProgressHUD est une commune de la filature de l'indicateur, et SLPagingViewSwift aléatoire projet que j'ai trouvé en tapant Swift dans le cocoapods de recherche. Voici la ViewController.m Dans mon projet:

#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

Voici la SLPagingViewSwift déclaration:

class SLPagingViewSwift: UIViewController, UIScrollViewDelegate {

Comme vous pouvez le voir, il hérite de UIViewController, donc il ne devrait pas être un problème pour juste allouer et initialiser. Si j'ajoute le fichier séparément comme juste un fichier, le code ci-dessus fonctionne très bien. Je sais que ça fonctionne.

tl;dr

Comment puis-je utiliser un pur Swift Cadre créé par CocoaPods dans un pur Objective-C classe?

Dépannage

Plupart du temps, j'ai essayé divers produits d'importation. Apple recommande l' @import style ici

Comment faire pour importer et utiliser Swift Pod Cadre en Objective-C Projet

Mais j'ai essayé plusieurs autres variétés:

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

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

J'ai aussi essayé quelques autres Swift bibliothèques de temps en temps pour voir si je pouvais faire quelque chose sur.

Je ne vois rien sur le Cocoapods questions qui peuvent aider à cela, je n'ai rien trouvé dans leur blog /libération des trucs.

Note

Si j'ajoute le SLPagingViewSwift.swift fichier séparément pour le projet à l'ancienne, il fonctionne très bien.

  • Ce que je comprends, vous pouvez toujours aller de Objc à Swift, mais pas toujours dans l'autre sens depuis Swift a la langue des fonctionnalités qui n'existent tout simplement pas dans Objc...
  • Vous avez raison, à certains égards, mais avec ce type de classe, il ne devrait pas être un problème, car il hérite d'un ObjC classe. Aussi, si j'ajoute juste le fichier, mon extrait ci-dessus construit et fonctionne très bien. (voir mise à jour)
  • Hey, votre question m'a beaucoup aidé, j'ai essayé d'ajouter FacebookSDK avec des gousses de cacao, et eu des erreurs lorsque vous essayez de compiler, "importer FacebookSDK" a fait le tour
  • Cette question est en fait très utile: à l'aide de @import en Objective-C -- ce que beaucoup d'entre nous ont vu jamais, ou rarement, est nouveau, utile et nécessaire. Merci de comprendre cela.
InformationsquelleAutor Logan | 2015-01-17