我正在尝试在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
答案 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代码中,缺少转换为整数。这就是错误告诉你的内容