Log*_*gan 69 objective-c cocoapods swift
我一直在尝试检查CocoaPods的新框架设置,以便让一些Pod继续运行,而我在使用我的Objective-C项目中的Swift问题时遇到了麻烦.
首先,这是CocoaPods预发布0.35,您可以在这里阅读有关如何使用和安装它的信息.
这是我当前的Podfile:
source 'https://github.com/CocoaPods/Specs.git'
platform :ios, '8.0'
pod 'MBProgressHUD'
pod 'SLPagingViewSwift'
Run Code Online (Sandbox Code Playgroud)
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
Run Code Online (Sandbox Code Playgroud)
这是SLPagingViewSwift宣言:
class SLPagingViewSwift: UIViewController, UIScrollViewDelegate {
Run Code Online (Sandbox Code Playgroud)
正如您所看到的,它继承自UIViewController,因此分配它并初始化它不应该是一个问题.如果我将文件单独添加为文件,上面的代码运行就好了.我知道它有效.
TL;博士
如何在纯Objective-C类中使用CocoaPods创建的纯Swift框架?
故障排除
大多数情况下,我一直在尝试各种进口.Apple推荐这里的@import风格

但我一直在尝试其他多种品种:
// Compiler Error
#import <SLPagingViewSwift/SLPagingViewSwift.h>
// Builds Fine -- Doesn't Work
#import <SLPagingViewSwift/SLPagingViewSwift-Swift.h>
#import "SLPagingViewSwift-Swift.h"
Run Code Online (Sandbox Code Playgroud)
我也不时尝试其他几个Swift库,看看我是否可以点击任何东西.
我没有看到有关Cocoapods问题的任何内容,我也没有在他们的博客/发布内容中找到任何内容.
注意
如果我SLPagingViewSwift.swift以旧式方式将文件单独添加到项目中,它就可以正常工作.
小智 41
我认为你必须将swift类声明为public,否则它被视为内部类,只能在同一模块中看到,这可能是为什么将它添加到与文件相同的项目中的原因,但是框架没有.我遇到的另一件事是框架可能需要在类声明前面添加@objc,以便在objective-c类中看到它.另外,在Objective c和swift之间阅读Apple的Mix and Match指南时,它表示当您导入外部框架时,需要确保将要导入的框架的Defines Module构建设置设置为Yes.你检查过这些选项吗?
| 归档时间: |
|
| 查看次数: |
37088 次 |
| 最近记录: |