Objective c 如何通过迦太基在Obj-C项目中使用Swift库
我一直在开发一个支持Xcode 8.2和iOS8~的objc项目 我通过迦太基安装了一个swift库(),但如果调用该库的任何方法,应用程序就会崩溃,并出现“无法识别的选择器发送到实例”错误 我可以通过Cocoapods使其工作,但是当我使用带有Cocoapods的Swift库时,构建时间会非常慢,所以如果可能的话,我想使用迦太基 有没有办法通过迦太基在objc项目中使用swift库 基本上,我通过迦太基基于页面安装了图表库。 我只使用嵌入式二进制文件来添加Charts.framework,而不是链接框架,因为它解决了启动时的崩溃问题 有没有办法通过迦太基在objc项目中使用swift库 将Charts.framework添加到项目设置中的嵌入式二进制文件后,可以按如下方式将Swift代码导入ObjC。例如,对于名为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,而
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上一个简单工作项目的链接。希望这有帮助。