二元运算符 - 不能应用于String类型的操作数!和国际

时间:2015-11-01 07:55:46

标签: ios swift

我正在尝试在swift中编写以下代码行:

 objManager.userObject.free_credit_counter = [NSString stringWithFormat:@"%ld", [objManager.userObject.free_credit_counter integerValue]-1];

我试过了:

    objManager.userObject.free_credit_counter = objManager.userObject.free_credit_counter - 1

但是我收到了这个错误:

Binary operator - cannot be applied to operands of type String! and Int

3 个答案:

答案 0 :(得分:1)

您的objManager.userObject.free_credit_counter输出值为String,您必须在使用Int运算符之前将其转换为-

if let count = Int(objManager.userObject.free_credit_counter) {
    objManager.userObject.free_credit_counter = String(count - 1)
}

答案 1 :(得分:0)

错误表示你试图从字符串值中做减1 ,基本上这是不可能的。

因此,首先将字符串低于 int

<强> objManager.userObject.free_credit_counter

然后减去1

答案 2 :(得分:0)

要使用Swift编写完全相同的代码,您应该这样做:

objManager.userObject.free_credit_counter = NSString(format: "%ld", objManager.userObject.free_credit_counter.integerValue - 1)

在您的原始代码中,您有这个位:

[objManager.userObject.free_credit_counter integerValue]

它将NSString的{​​{1}}值转换为整数,然后将其递减1,然后使用格式掩码将结果转换回free_credit_counter

在您在问题中发布的Swift代码中,缺少转换为整数。这就是错误告诉你的内容