首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在Swift中将CGFloat转换为NSNumber

在Swift中将CGFloat转换为NSNumber
EN

Stack Overflow用户
提问于 2015-12-15 08:13:39
回答 3查看 17.9K关注 0票数 33

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

这是我的代码,它不工作,但它详细说明了我想要做的事情:

代码语言:javascript
复制
var scaledFontSize: CGFloat {
    get {
        guard let fontSize = objc_getAssociatedObject(self, &AssociatedKeys.scaledFontSize) as? NSNumber else {
            //Set it
            let scaledFont:CGFloat = VGSizeValues.getValueFromValue(self.font.pointSize);
                //Fails here
            objc_setAssociatedObject(self,&AssociatedKeys.scaledFontSize, NSNumber( scaledFont),objc_AssociationPolicy.OBJC_ASSOCIATION_RETAIN_NONATOMIC)
            return scaledFont;
        }
        return CGFloat(fontSize.doubleValue);

    }
}

有没有办法解决这个问题?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-15 08:19:37

在Swift 3.0中

代码语言:javascript
复制
let myFloat : CGFloat = 1234.5

let myNumber = NSNumber(value: Float(myFloat))

代码语言:javascript
复制
let myNumber = NSNumber(value: Double(myFloat))

在Swift 2中

代码语言:javascript
复制
let myNumber = NSNumber(double: myFloat.native)

代码语言:javascript
复制
let myNumber = NSNumber(double: Double(myFloat))

代码语言:javascript
复制
let myNumber = NSNumber(float: Float(myFloat))
票数 70
EN

Stack Overflow用户

发布于 2016-11-08 03:09:38

适用于Swift 3.1

代码语言:javascript
复制
var final_price: CGFloat = 12.34
let num = final_price as NSNumber
票数 11
EN

Stack Overflow用户

发布于 2016-09-16 18:00:05

对我来说,这是可行的。

代码语言:javascript
复制
self.configuration.cellHeight as NSNumber!
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34278923

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档