从Objective-C类访问对象的Swift函数
我正试图在我的Objective-C项目中实现一些Swift框架。我已经设置了所有的桥头,并且在swift类中的函数和类之前编写了@objc。因此需要执行以下操作,但Swift中给出了示例代码:从Objective-C类访问对象的Swift函数,objective-c,swift,function,class,objc-bridging-header,Objective C,Swift,Function,Class,Objc Bridging Header,我正试图在我的Objective-C项目中实现一些Swift框架。我已经设置了所有的桥头,并且在swift类中的函数和类之前编写了@objc。因此需要执行以下操作,但Swift中给出了示例代码: barView.addBarBackground(startAngle: 90, endAngle: -270, radius: 100, width: 15) 我必须在对象barView的Obj-c类中执行此代码。我试过这么做,但没用: [_barView.addBarBackground star
barView.addBarBackground(startAngle: 90, endAngle: -270, radius: 100, width: 15)
我必须在对象barView的Obj-c类中执行此代码。我试过这么做,但没用:
[_barView.addBarBackground startAngle: 90 endAngle: -270 radius: 100 width: 15];
我该怎么办
编辑:
我有一个IB插座连接:
@property (strong) IBOutlet OGCircularBarView *barView;
因此,有一个名为barView的对象。我也有一些Swift类的代码:
import Cocoa
@objc public class OGCircularBarView: NSView, Sequence {
//...
@objc public func addBarBackground(startAngle: CGFloat, endAngle: CGFloat, radius: CGFloat, width: CGFloat, color: NSColor) {
//some code
}
//...
}
我需要在Objective-C类中执行该代码(在Swift中给出):
barView.addBarBackground(startAngle: 90, endAngle: -270, radius: 100, width: 15)
我如何重写它以使其在Objective-C中工作?尝试以下方法:
[_barView addBarBackgroundStartAngle: 90 endAngle: -270 radius: 100 width: 15];
第一个问题是不能对方法使用点语法;这就是括号的含义:[对象消息:withArguments:…]
第二,Swift函数名对于Obj-C翻译来说有点笨拙。如果您按照以下方式声明swift功能:
func addBarBackgroundWithStartAngle(_ startAngle: Type, endAngle: Type...
。。。它将被翻译成一种更容易阅读的语言:
[_barView addBarBackgroundWithStartAngle: endAngle: ...]
我希望这有帮助 不幸的是,我必须为一个名为barView的对象添加背景。这个背景有一些参数,比如startAngle,endAngle,radius等等。我必须告诉函数addBarBackground,我需要什么类型的背景。见我的伊迪蒂是的。:-)这就是我的回答。你试过了吗?是的!我刚刚改变了你告诉我的功能,它工作了:)谢谢!