You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

SwiftUI报错:Initializer 'init(_:)'要求Binding<Int>遵循LosslessStringConvertible

解决Binding转String的初始化报错

问题原因

报错提示Initializer 'init(_:)' requires that 'Binding<Int>' conform to 'LosslessStringConvertible',本质是你代码里的meme.userid现在是Binding<Int>类型,而非普通的Int。String(_:)初始化器要求输入类型遵循LosslessStringConvertible协议,但Binding<Int>并不满足这个要求,所以直接转换会触发错误。之前代码能正常运行,大概率是因为当时meme.userid是普通Int类型,后续代码迭代中被改成了Binding<Int>。

修复代码

只需要通过wrappedValue属性获取Binding<Int>内部的实际整数值,再转换为String即可:

if !user.hiddenUsersString.contains(String(meme.userid.wrappedValue) + ",") {
    // 你的业务逻辑代码
}

补充说明

Binding是SwiftUI中用于双向数据绑定的包装类型,要获取它包裹的原始值,必须访问wrappedValue属性。如果是需要反向绑定到视图控件,才会用到$前缀语法,但这里我们只需要读取实际数值,所以直接调用wrappedValue即可。

内容的提问来源于stack exchange,提问作者Coddo

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.21 08:02:34