在Swift中将CGFloat转换为NSNumber

我在Swift中有一个扩展,它包含一些属性,这些属性是CGFloat。问题是,我不知道如何使用关联对象将CGFloat值存储为NSNumber

下面是我的代码,它不起作用,但它详细说明了我想做什么:

var scaledFontSize:CGFloat{
得到{
guard let fontSize=objc_getAssociatedObject(self,&AssociatedKeys.scaledFontSize)作为?NSNumber else{
//定下来
让scaledFont:CGFloat=VGSizeValues.getValueFromValue(self.font.pointSize);
//这里失败了
objc_setAssociatedObject(self和AssociatedKeys.scaledFontSize、NSNumber(scaledFont)、objc_AssociationPolicy.objc_ASSOCIATION_RETAIN_非原子)
返回缩放字体;
}
返回CGFloat(fontSize.doubleValue);
}
}

有人有办法解决这个问题吗

在Swift 3.0中

让myFloat:CGFloat=1234.5
设myNumber=NSNumber(值:Float(myFloat))

让myNumber=NSNumber(值:Double(myFloat))

斯威夫特2

让myNumber=NSNumber(double:myFloat.native)

让myNumber=NSNumber(double:double(myFloat))

让myNumber=NSNumber(float:float(myFloat))

发表评论