无法将类型为“Int”的值转换为预期的参数类型“Range”。
无法将类型为“Int”的值转换为预期的参数类型“Range”。
这个问题已经有了答案:
试图在Swift Spritekit中制作一个函数,它看起来像这样:
func card_vals(card_value_set: [Int], card_set: [String]) { var card_value_set = card_value_set var card_set = card_set for i in card_set { var j = Int(i[0]) card_value_set.append(j) } }
简单来说,该函数是将一个卡牌集合,例如[\"3C\", \"4D\"],看作是一个Str列表,卡牌值集合应该像[3,4]一样,是一个Int列表。
然而,我遇到了以下错误:
cannot convert value of type 'Int' to expected argument type 'Range
是否有任何帮助消除这个错误?
谢谢
admin 更改状态以发布 2023年5月19日
你需要对其进行字符串包装
i[0]
返回字符,没有接受字符类型的整数类型的初始化器。
func card_vals(card_value_set: [Int], card_set: [String]) { var card_value_set = card_value_set var card_set = card_set for i in card_set { if let first = i.first, let intData = Int(String(first)) { card_value_set.append(intData) } } }
或者您也可以这样做
var j = Int(String(i[0])) ?? 0