二元运算符' /'无法应用于两个UInt32'操作数

时间:2016-11-10 21:34:42

标签: ios swift uint32

这是我的代码。

var frameCount = INT_MAX
...

let totalSize: UInt32 = 4096
let itemSize: UInt32 = 64
frameCount = totalSize / itemSize

我得到"二元运算符' /'无法应用于两个UInt32'操作数"错误信息。 这真的不可能或我错过了什么?

1 个答案:

答案 0 :(得分:3)

错误消息有点误导。 Function Invert (ch:string) : string; begin if ch='' then Invert:='' else Invert:=copy(ch,length(ch),1)+Invert(copy(ch,1,length(ch)-1)); end; 定义为

INT_MAX

所以

public var INT_MAX: Int32 { get }

var frameCount = INT_MAX 被定义为frameCount类型的变量。 除法Int32的结果是totalSize / itemSize 但是,Swift并没有隐式转换类型。

您可以通过将初始定义更改为

来解决此问题
UInt32

或者更简单,让编译器推断出类型:

var frameCount = UINT32_MAX

如果您需要将结果作为有符号整数,那么您必须这样做 明确地转换它,例如

let totalSize: UInt32 = 4096
let itemSize: UInt32 = 64
let frameCount = totalSize / itemSize