我正在尝试在用Swift编写的项目中使用用objective-c编写的第三方库。我已将文件复制到项目中并构建了桥文件,并且能够引用库中的类并使用这些属性。但是我无法在库中调用实例函数,XCode只是抱怨value of type 'EFCircularSlider' has no member 'setInnerMarkingLabels'
。代码如下:
函数:
-(void)setInnerMarkingLabels:(NSArray*)innerMarkingLabels
{
_innerMarkingLabels = innerMarkingLabels;
[self setNeedsUpdateConstraints]; // This could affect intrinsic content size
[self setNeedsDisplay]; // Need to redraw with new label texts
}
在swift中调用的方式:
required init?(coder aDecoder: NSCoder) {
super.init(coder: aDecoder)
let hourSliderFrame = CGRectMake(55, 220, 210, 210)
hourSlider = EFCircularSlider(frame: hourSliderFrame)
hourSlider.unfilledColor = UIColor(red: 23/255.0, green: 47/255, blue: 70/255, alpha: 1.0)
let markingLabels = ["1", "2", "3", "4", "5", "6", "7", "8", "9", "10", "11", "12"]
hourSlider.setInnerMarkingLabels(markingLabels)
}
答案 0 :(得分:1)
您可能必须使用属性(点)赋值表示法而不是调用显式setter
hourSlider.innerMarkingLabels = markingLabels
PS:hourSlider
在哪里初始化?代码原样不会编译。
文档说
使用dot访问Swift中Objective-C对象的属性 语法,使用没有括号的属性名称。