我有一个既有Objective-C又有Swift的项目。一切都已正确连接,因此我通常可以在类上调用扩展而不会出现问题。但是,在这种情况下,我必须将参数传递给扩展名,并且会迷上语法。
这是Swift 3扩展程序
extension Double {
/// Rounds the double to decimal places value
func rounded(toPlaces places:Int) -> Double {
let divisor = pow(10.0, Double(places))
return (self * divisor).rounded() / divisor
}
}
在Swift中,您可以使用
let x = Double(0.123456789).rounded(toPlaces: 4)
以下内容在Objective-C中不起作用:我玩过它,但是无法获得正确的语法:
double test = 0.123456789;
double roundedtot = test.roundedToPlaces:2;
具体错误是
'成员引用基本类型'double'不是结构或联合'
我收集到的是ac错误,但是由于您可以快速调用该函数,因此似乎应该有一种在Objc-C中调用它的方法
您需要添加@objc
扩展定义才能从Objective-C调用它。
另外,请务必注意,可以从Objective-C访问类的扩展(而不是结构或枚举)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句