Ios 在Swift项目中找不到接受类型为“(()->\”的参数列表的类型为“CGSize”的初始值设定项
我正在斯坦福大学学习一门课程,并收到以下错误:Ios 在Swift项目中找不到接受类型为“(()->\”的参数列表的类型为“CGSize”的初始值设定项,ios,xcode,swift,cgsize,Ios,Xcode,Swift,Cgsize,我正在斯坦福大学学习一门课程,并收到以下错误: Cannot find an initializer for type 'CGSize' that accepts an argument list of type '(() -> _)' 本课程仅在几个月前教授,但使用的是Xcode 6.2而不是Xcode 6.3。我需要采取什么不同的措施来纠正此错误 这是第12讲-动态动画- 首先,您键入的CGFloat不正确。它是CGFloat而不是CGFloat 对于第二部分,将dropSize
Cannot find an initializer for type 'CGSize' that accepts an argument list of type '(() -> _)'
本课程仅在几个月前教授,但使用的是Xcode 6.2而不是Xcode 6.3。我需要采取什么不同的措施来纠正此错误
这是第12讲-动态动画-
首先,您键入的CGFloat不正确。它是CGFloat而不是CGFloat 对于第二部分,将dropSize中的“=”更改为“:”
var dropSize : CGSize {
let size = gameView.bounds.size.width / CGFloat(dropsPerRow)
return CGSize(width: size, height: size)
}
此外,这是我第一次看到在Swift中使用“=”而不是“:”,因为它发布了…首先,您键入的CGFloat不正确。它是CGFloat而不是CGFloat 对于第二部分,将dropSize中的“=”更改为“:”
var dropSize : CGSize {
let size = gameView.bounds.size.width / CGFloat(dropsPerRow)
return CGSize(width: size, height: size)
}
此外,这是我第一次看到在Swift中使用“=”而不是“:”,因为它发布了…这是您课程中的代码:
var dropSize: CGSize {
let size = gameView.bounds.size.width / CGFloat(dropsPerRow)
return CGSize(width: size, height: size)
}
您只需检查您的代码和课程代码,它就会帮助您。这是您课程的代码:
var dropSize: CGSize {
let size = gameView.bounds.size.width / CGFloat(dropsPerRow)
return CGSize(width: size, height: size)
}
您只需检查您的代码和课程中的代码,它就会帮助您。在第一个错误中,您需要使用构造函数来创建dropSize。我建议添加您自己的:
static func calculateDropSize(width: CGFloat, dropsPerRow: UInt32) -> CGSize {
let size = CGFloat(width / CGFloat(dropsPerRow))
return CGSize(width: size, height: size)
}
然后,将该行改写为:
var dropSize = MyClass.calculateDropSize(gameView.bounds.size.width, dropsPerRow: dropsPerRow)
您可以添加该函数作为CGSize的扩展,但从面向对象的角度来看,这是不可取的
您的第二个错误只需强制执行:
var frame = CGRect(origin: CGPointZero, size: CGFloat(dropSize))
正如Gasim评论的那样,您的第三个错误是CGFloat输入错误:
private extension CGFloat {
在第一个错误中,您需要使用构造函数来创建dropSize。我建议添加您自己的:
static func calculateDropSize(width: CGFloat, dropsPerRow: UInt32) -> CGSize {
let size = CGFloat(width / CGFloat(dropsPerRow))
return CGSize(width: size, height: size)
}
然后,将该行改写为:
var dropSize = MyClass.calculateDropSize(gameView.bounds.size.width, dropsPerRow: dropsPerRow)
您可以添加该函数作为CGSize的扩展,但从面向对象的角度来看,这是不可取的
您的第二个错误只需强制执行:
var frame = CGRect(origin: CGPointZero, size: CGFloat(dropSize))
正如Gasim评论的那样,您的第三个错误是CGFloat输入错误:
private extension CGFloat {
你写错了。这不是CGFLoat,而是CGFLoat。谢谢你,我对这个还很陌生,我不敢相信我错过了。我们中最好的人都会遇到这样的情况:你把CGFLoat写错了。这不是CGFLoat,而是CGFLoat。谢谢你,我对这一点还是很陌生,我不敢相信我错过了。我们中最好的人都会这样:我不得不不同意你的观点,因为你为什么要将CGSize转换为CGSize?他有一个cast问题,因为他实际上有一个语法问题:他键入了=而不是:。如果他和你一起去解决这个问题,他仍然不需要向CGFloat施压……我不同意你的观点,因为你为什么要向CGSize施压?他有一个cast问题,因为他实际上有一个语法问题:他键入了=而不是:。如果他和你一起走解决这个问题的道路,他仍然不需要投CGFloat。。。