首页 > 解决方案 > 尽管有值,但将可选字符串转换为 Int 崩溃

问题描述

我检查可选字符串

 print(limitCash)
  if let value = Int32(limitCash) {
         aProvider.limitBuy = value
  }

limitCash 的值为 Optional("500")。

程序检查 if let 语句并跳过它而不赋值。

如果我尝试 aProvider.limitBuy = Int32(limitCash),程序就会崩溃!

标签: swift4

解决方案


首先你需要解开String?转换为 String,然后解包从 String 转换为 UInt32 的结果(这将是 Uint32?)。

print(limitCash)
if let stringValue = limitCash {
   if let value = Int32(stringValue) {
     print(value) // 500
   }
}

推荐阅读