Ios 在Swift类中使用Objective-c类
我最近被迫在swift中使用了一些objective-c语言,我搜索并发现: 从同一目标将Objective-C代码导入Swift 1) 在Objective-C桥接头文件中,导入每个Objective-C 要向Swift公开的标题。例如:Ios 在Swift类中使用Objective-c类,ios,objective-c,swift,Ios,Objective C,Swift,我最近被迫在swift中使用了一些objective-c语言,我搜索并发现: 从同一目标将Objective-C代码导入Swift 1) 在Objective-C桥接头文件中,导入每个Objective-C 要向Swift公开的标题。例如: #import "XYZCustomCell.h" #import "XYZCustomView.h" #import "XYZCustomViewController.h" 2) 在构建设置中,在Swift编译器-代码生成中,确保Objective-C桥
#import "XYZCustomCell.h"
#import "XYZCustomView.h"
#import "XYZCustomViewController.h"
2) 在构建设置中,在Swift编译器-代码生成中,确保Objective-C桥接头
下的生成设置具有桥接头文件的路径。路径
应该与您的项目相关,类似于您的Info.plist
路径在生成设置中指定。在大多数情况下,你不应该这样做
需要修改此设置
中列出的任何公共Objective-C标题
此桥接头文件将对Swift可见。目标-C
该目标内的任何Swift文件都将提供该功能
自动,无需任何导入语句。使用您的自定义
Objective-C代码与系统使用的Swift语法相同
上课
我按照步骤向swift类添加了初始代码:
let percentageView: FSPercentageView = FSPercentageView(frame: CGRectMake(15, 65, 300, 300))
但我在消息中遇到了一个错误:用于未声明的类型“FSPercentageView”
我在swift中使用objective-c搜索了这个错误,但没有找到任何有用的答案。
我检查了网桥头文件路径,它看起来很好
我希望你的建议能解决我的问题
更新:
我的桥牌头球
#import "FSPercentageView.h"
我的FSPercentageView.h类:
#import <Foundation/Foundation.h>
#import "MCCore.h"
@class FCPercentageView;
typedef enum {
FSPercentageViewTextStyleAutomaticShowsPercentage,
FSPercentageViewTextStyleUserDefined
} FSPercentageViewTextStyle;
@interface FSPercentageView : MCNewCustomLayeredView
/*
Sets the percentage of the view.
*/
@property (nonatomic) CGFloat percentage;
/*
Sets the percentage of the view.
*/
@property (nonatomic) CGFloat initialPercentage;
/*
Defines the border percentage for both filled and unfilled portions.
*/
@property (nonatomic) CGFloat borderPercentage;
/*
The label of the text in the center of the doughnut.
*/
@property (nonatomic, retain) UILabel *textLabel;
/*
The color for the filled portion of the doughnut.
*/
@property (nonatomic, retain) UIColor *fillColor;
/*
The color for the unfilled portion of the doughnut.
*/
@property (nonatomic, retain) UIColor *unfillColor;
}
以及swift代码:
let percentageView: FSPercentageView = FSPercentageView(frame: CGRectMake(15, 35, 289, 311))
显示上面一行中的错误
我希望你的建议能解决我的问题
但是你没有提供任何信息,所以不可能有任何建议。苹果说的是真的;我向您保证,此功能确实有效。问题只可能是您没有遵循自己引用的说明。我发现了我的代码存在的问题 我的应用程序中有两个目标,而且我正在使用测试单元。 由于在所有提到的目标中添加了我的swift代码,因此项目需要有3个与每个目标相关的桥接类,并且必须在所有目标中导入标题。实际上,红色消息是关于单元测试桥接文件的
现在,我从测试单元中删除了swift类,代码正在编译和运行,没有任何问题 显示更多的代码。显示桥接标头。显示声明FSPercentageView的文件。哦,你可能想看看我的书,我认为这本书比苹果的文档更清晰:FSPercentageView.h应该以
@end
结尾,而不是大括号。
let percentageView: FSPercentageView = FSPercentageView(frame: CGRectMake(15, 35, 289, 311))