【问题标题】:"'CGFloat' is not convertible to 'UInt8'" - CGFloat wrapping issue“'CGFloat' 不能转换为 'UInt8'” - CGFloat 包装问题
【发布时间】:2014-11-28 04:56:19
【问题描述】:
label.position = CGPointMake(self.size.width*0.125, self.size.height-CGFloat(0.15)*self.size.height*_activeEnemiesArray.count)

我收到一个指向 self.size.width 的错误,上面写着

'CGFloat' 不能转换为 'Double'。

这是有道理的,因为 CGFloat 值和 Double 值不能相乘,但是当我将 0.125 转换为 CGFloat 时:

label.position = CGPointMake(self.size.width*CGFloat(0.125), self.size.height-0.15*self.size.height*_activeEnemiesArray.count)

我收到一个指向 self.size.width 的错误,上面写着

'CGFloat' 不能转换为 'UInt8'

这没有任何意义。有没有其他人遇到过这种情况,可能是什么原因?

【问题讨论】:

标签: ios swift cgfloat


【解决方案1】:

Xcode 让你误入歧途——文字不应该真的引起问题,因为一旦其他所有内容都是相同的类型,它们就会根据需要转换为 DoubleCGFloat。相反,您的行尾有一个Int

... * self.size.height * _activeEnemiesArray.count)

count 属性需要转换为CGFloat,以便与其余部分一起使用:

... * self.size.height * CGFloat(_activeEnemiesArray.count))

【讨论】:

    【解决方案2】:

    试试看

    self.frame.size.width 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-04-17
      • 1970-01-01
      • 1970-01-01
      • 2014-09-27
      • 1970-01-01
      • 2010-11-06
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多