强制类型为Int的绑定<Double>-Swift UI

辛顿

我正在尝试将Binding的值强制转换为Int值,但是在转换时始终会失败。

它必须是一个int才能生成随机数。

func randomise(startNumber: Int, endNumber: Int) -> Int{
    let startNum = $value.startNumber
    let endNum = $value.endNumber
    let generated = arc4random_uniform(UInt32(endNum - startNum)) + UInt32(startNum)
        
    return Int(generated)
}

绑定到标准类型的转换如何工作?

这是创建绑定的Observable对象的类。

final class Value:ObservableObject {
    @Published var startNumber: Double = 0
    @Published var endNumber: Double = 5000
}

产生两个错误:

Initializer 'init(_:)' requires that 'Binding<Double>' conform to 'BinaryInteger'
Referencing operator function '-' on 'BinaryInteger' requires that 'Binding<Double>' conform to 'BinaryInteger'

谢谢!

jn_pdx

@ObservedObject是围绕实际对象的属性包装器。因此,要访问这些属性的非绑定值,可以使用wrappedValue

func randomise(startNumber: Int, endNumber: Int) -> Int{
        
        
        let startNum = $value.startNumber
        let endNum = $value.endNumber
        let generated = arc4random_uniform(UInt32(endNum.wrappedValue - startNum.wrappedValue)) + UInt32(startNum.wrappedValue)
            
        return Int(generated)
    }

要么

您可以$在访问值变量时摆脱,从而删除Binding:

func randomise(startNumber: Int, endNumber: Int) -> Int{
        
        
        let startNum = value.startNumber
        let endNum = value.endNumber
        let generated = arc4random_uniform(UInt32(endNum - startNum)) + UInt32(startNum)
            
        return Int(generated)
    }

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Swift:将 JSON 解码为 Int/Double

在Swift中将Int转换为Double

Swift JSONSerialization作为Int代替Double

获取“无法将类型 'CLLocationDegrees'(又名'Double')的值分配给类型'Int'”错误(Swift 4)

Swift UI MacOS @已发布nil或Int

Swift ui xcode NSPasteboard 为空

Swift中NSTextField绑定为double,如何允许空白?

Swift:将NSObject强制转换为其他类型的UI对象

Swift从字符串中提取Int,Float或Double值(类型转换)

如何在 Swift 中将 Enum 类型转换为 Double

在Swift中找不到Double类型的初始化程序

如果在Swift中是整数,则将Double显示为Int

无法将类型'Swift._SwiftDeferredNSDictionary <Swift.String,Swift.Double>'(0x11b1b84f8)的值强制转换为'NSMutableDictionary'

将CLLocationCoordinate2D转换为double或int swift

如何理解 Swift 5.5 中的 Int Double 轉換?

将 Swift 5.0 中的字符串对象解包为 [(Double, Double)]

Swift UI View init上的可选绑定参数

如何从Swift UI中的函数返回View类型

Xcode-Swift编译器错误:无法将表达式的类型“ Double”转换为类型“ Double”

未为参数类型Double,int定义运算符^

Swift UI-为iPad和iPhone设置视图

Swift UI:如果文本字段为空,则禁用按钮

Swift UI将列表覆盖为背景色

函数类型为带有复杂<double>的强制类型转换的模棱两可转换

在MATLAB中连接多个混合数值类型值时强制数组保持类型为'double'

二进制运算符的类型为'int'和'double(double *,double *,int)'的无效操作数

在TabGesture Swift UI上

Swift iOS UI建议

条件绑定中的Swift Bound值必须为Optional类型