首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >二进制运算符-不能应用于字符串类型的操作数!和Int

二进制运算符-不能应用于字符串类型的操作数!和Int
EN

Stack Overflow用户
提问于 2015-11-01 07:55:46
回答 3查看 997关注 0票数 0

我正试着迅速地编写以下代码:

代码语言:javascript
运行
复制
 objManager.userObject.free_credit_counter = [NSString stringWithFormat:@"%ld", [objManager.userObject.free_credit_counter integerValue]-1];

我试过:

代码语言:javascript
运行
复制
    objManager.userObject.free_credit_counter = objManager.userObject.free_credit_counter - 1

但我发现了一个错误:

代码语言:javascript
运行
复制
Binary operator - cannot be applied to operands of type String! and Int
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-11-01 08:09:58

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

代码语言:javascript
运行
复制
if let count = Int(objManager.userObject.free_credit_counter) {
    objManager.userObject.free_credit_counter = String(count - 1)
}
票数 1
EN

Stack Overflow用户

发布于 2015-11-01 08:09:15

错误表示您正在尝试从一个字符串值中执行1减法,这基本上是不可能的。

因此,首先让下面的字符串int

objManager.userObject.free_credit_counter

然后减去1

票数 0
EN

Stack Overflow用户

发布于 2015-11-01 08:10:29

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

代码语言:javascript
运行
复制
objManager.userObject.free_credit_counter = NSString(format: "%ld", objManager.userObject.free_credit_counter.integerValue - 1)

在您的原始代码中,您有以下内容:

代码语言:javascript
运行
复制
[objManager.userObject.free_credit_counter integerValue]

它将NSStringfree_credit_counter转换为整数,整数然后递减1,然后使用格式掩码将结果转换回NSString

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

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33460260

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档