所以,我在子类中有这个函数:
func colorAt(x x: Int, y: Int)->UIColor {
assert(0<=x && x<width)
assert(0<=y && y<height)
let uncastedData = CGBitmapContextGetData(context)
let data = UnsafePointer<UInt8>(uncastedData)
let offset = 4 * (y * width + x)
let alpha: UInt8 = data[offset]
let red: UInt8 = data[offset+1]
let green: UInt8 = data[offset+2]
let blue: UInt8 = data[offset+3]
let color = UIColor(red: CGFloat(red)/255.0, green: CGFloat(green)/255.0, blue: CGFloat(blue)/255.0, alpha: CGFloat(alpha)/255.0)
return color
}
但是,我不想返回 UIColor,而是想单独返回红色、绿色、蓝色和 alpha(这样我以后就不必从 UIColor 获取 rgb 值)。函数是否可以有多个返回值?如果可以,如何实现?顺便说一句,不确定这是否重要,但我也希望能够稍后在我的代码中从子类外部访问这些返回。
谢谢!
最佳答案
您可以返回一个元组。
func colorAt(x x: Int, y: Int) -> (CGFloat, CGFloat, CGFloat) {
// some stuff to make red, green, and blue vars
return (redVar, greenVar, blueVar)
}
Apple 文档关于元组的内容非常好,但是如果您想阅读很多内容,这里还有另一个来源: http://www.codingexplorer.com/tuples-in-swift-create-read-and-return/
关于swift - 如何在 Swift 中从子类内的函数获得多个返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35282049/