Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Objective c 如何通过迦太基在Obj-C项目中使用Swift库_Objective C_Swift_Charts_Cocoapods_Carthage - Fatal编程技术网

Objective c 如何通过迦太基在Obj-C项目中使用Swift库

Objective c 如何通过迦太基在Obj-C项目中使用Swift库,objective-c,swift,charts,cocoapods,carthage,Objective C,Swift,Charts,Cocoapods,Carthage,我一直在开发一个支持Xcode 8.2和iOS8~的objc项目 我通过迦太基安装了一个swift库(),但如果调用该库的任何方法,应用程序就会崩溃,并出现“无法识别的选择器发送到实例”错误 我可以通过Cocoapods使其工作,但是当我使用带有Cocoapods的Swift库时,构建时间会非常慢,所以如果可能的话,我想使用迦太基 有没有办法通过迦太基在objc项目中使用swift库 基本上,我通过迦太基基于页面安装了图表库。 我只使用嵌入式二进制文件来添加Charts.framework,而

我一直在开发一个支持Xcode 8.2和iOS8~的objc项目

我通过迦太基安装了一个swift库(),但如果调用该库的任何方法,应用程序就会崩溃,并出现“无法识别的选择器发送到实例”错误

我可以通过Cocoapods使其工作,但是当我使用带有Cocoapods的Swift库时,构建时间会非常慢,所以如果可能的话,我想使用迦太基

有没有办法通过迦太基在objc项目中使用swift库

基本上,我通过迦太基基于页面安装了图表库。

我只使用嵌入式二进制文件来添加Charts.framework,而不是链接框架,因为它解决了启动时的崩溃问题

有没有办法通过迦太基在objc项目中使用swift库

将Charts.framework添加到项目设置中的嵌入式二进制文件后,可以按如下方式将Swift代码导入ObjC。例如,对于名为
ChartsObjCSample
的示例项目,您需要:

import "ChartsObjCSample-Swift.h"
现在,您应该能够在ObjC代码中使用Charts API了

但是,有时不会创建上述
-Swift.h
文件,在这种情况下,您可以创建一个虚拟Swift文件,按照Xcode指令添加布林头,然后再次清理、构建,这将创建
-Swift.h
文件。

最后,要使用Charts API创建条形图,您可以使用一个ViewController,将storyboard视图类指定为
BarChartView
,如下所示

然后,视图控制器可以使用以下代码呈现条形图:

#import "ViewController.h"
#import "ChartsObjCSample-Swift.h"
@import Charts;

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    BarChartView* barChartView = (BarChartView*)self.view;

    NSMutableArray* dataEntries = [[NSMutableArray alloc] init];
    for(int i = 0; i < 100; i++) {
        BarChartDataEntry* dataEntry = [[BarChartDataEntry alloc] initWithX:5.0 * arc4random_uniform(12) y:100.0];
        [dataEntries addObject:dataEntry];
    }

    BarChartDataSet* dataSet = [[BarChartDataSet alloc] initWithValues:dataEntries label:@"Visitor Count"];

    BarChartData* barChartData = [[BarChartData alloc] initWithDataSet:dataSet];
    barChartView.data = barChartData;
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end
有没有办法通过迦太基在objc项目中使用swift库

将Charts.framework添加到项目设置中的嵌入式二进制文件后,可以按如下方式将Swift代码导入ObjC。例如,对于名为
ChartsObjCSample
的示例项目,您需要:

import "ChartsObjCSample-Swift.h"
现在,您应该能够在ObjC代码中使用Charts API了

但是,有时不会创建上述
-Swift.h
文件,在这种情况下,您可以创建一个虚拟Swift文件,按照Xcode指令添加布林头,然后再次清理、构建,这将创建
-Swift.h
文件。

最后,要使用Charts API创建条形图,您可以使用一个ViewController,将storyboard视图类指定为
BarChartView
,如下所示

然后,视图控制器可以使用以下代码呈现条形图:

#import "ViewController.h"
#import "ChartsObjCSample-Swift.h"
@import Charts;

@interface ViewController ()

@end

@implementation ViewController

- (void)viewDidLoad {
    [super viewDidLoad];
    // Do any additional setup after loading the view, typically from a nib.
    BarChartView* barChartView = (BarChartView*)self.view;

    NSMutableArray* dataEntries = [[NSMutableArray alloc] init];
    for(int i = 0; i < 100; i++) {
        BarChartDataEntry* dataEntry = [[BarChartDataEntry alloc] initWithX:5.0 * arc4random_uniform(12) y:100.0];
        [dataEntries addObject:dataEntry];
    }

    BarChartDataSet* dataSet = [[BarChartDataSet alloc] initWithValues:dataEntries label:@"Visitor Count"];

    BarChartData* barChartData = [[BarChartData alloc] initWithDataSet:dataSet];
    barChartView.data = barChartData;
}


- (void)didReceiveMemoryWarning {
    [super didReceiveMemoryWarning];
    // Dispose of any resources that can be recreated.
}


@end

嗨,谢谢你的回复。我在barChartViewController.m文件中编写了#import“Charts Swift.h”,但出现了文件未找到错误。我还尝试了“打包下的构建设置,我的Defines模块设置为Yes”,但没有成功。还有什么东西吗?当我键入@import Charts时;它没有显示错误,但当我使用某些方法时,它崩溃了。我认为您可能必须将
始终嵌入Swift标准库
设置为
。参考号:。注意:在Xcode 8以后的版本中,
嵌入的内容包含Swift代码
已被弃用并重命名为
始终嵌入Swift标准库
。您好,我尝试始终将Swift标准库嵌入为“是”,但仍然显示相同的错误。@NonUmemoto我已更新了答案,还添加了一个指向GitHub上一个简单工作项目的链接。希望这有帮助。嗨,谢谢你的回复。我在barChartViewController.m文件中编写了#import“Charts Swift.h”,但出现了文件未找到错误。我还尝试了“打包下的构建设置,我的Defines模块设置为Yes”,但没有成功。还有什么东西吗?当我键入@import Charts时;它没有显示错误,但当我使用某些方法时,它崩溃了。我认为您可能必须将
始终嵌入Swift标准库
设置为
。参考号:。注意:在Xcode 8以后的版本中,
嵌入的内容包含Swift代码
已被弃用并重命名为
始终嵌入Swift标准库
。您好,我尝试始终将Swift标准库嵌入为“是”,但仍然显示相同的错误。@NonUmemoto我已更新了答案,还添加了一个指向GitHub上一个简单工作项目的链接。希望这有帮助。