Przystosowałem się do Swift metody ObjectiveC, którą znalazłem w Internecie (może tutaj, nie pamiętam) i kiedy buduję ją na iPada powietrze, działa perfekcyjnie, ale gdy próbuję uruchomić go na iPada 2 lub iPad Retina to daje 4 błędy (2 różne błędy, każdy dwa razy):Swift - Nie można znaleźć przeciążenia ... & Nie można przekonwertować typu wyrażenia
/* Scale and crop image */
func imageByScalingAndCroppingForSize(#originalImage: UIImage, size:CGSize) -> UIImage {
let sourceImage = originalImage
var newImage: UIImage
let imageSize: CGSize = sourceImage.size
let width: Double = Double(imageSize.width)
let height: Double = Double(imageSize.height)
var targetWidth: Double = Double(size.width)
var targetHeight: Double = Double(size.height)
var scaleFactor: Double = 0.0
var scaledWidth: Double = targetWidth
var scaledHeight: Double = targetHeight
var thumbnailPoint: CGPoint = CGPointMake(0.0, 0.0)
if (imageSize != size) {
let widthFactor: Double = Double(targetWidth/width)
let heightFactor: Double = Double(targetHeight/height)
if (widthFactor > heightFactor) { // Scale to fit height
scaleFactor = widthFactor
}else{ // Scale to fit width
scaleFactor = heightFactor
}
scaledWidth = Double(width * scaleFactor)
scaledHeight = Double(height * scaleFactor)
// Center the image
if (widthFactor > heightFactor) {
thumbnailPoint.y = (targetHeight - scaledHeight) * 0.5 // Could not find an overload for '*' that accepts the supplied arguments
}else{
if (widthFactor < heightFactor) {
thumbnailPoint.x = (targetWidth - scaledWidth) * 0.5 // Could not find an overload for '*' that accepts the supplied arguments
}
}
}
UIGraphicsBeginImageContext(size)
var thumbnailRect: CGRect = CGRectZero
thumbnailRect.origin = thumbnailPoint
thumbnailRect.size.width = scaledWidth // Cannot convert the expression's type '()' to type 'CGFloat'
thumbnailRect.size.height = scaledHeight // Cannot convert the expression's type '()' to type 'CGFloat'
sourceImage.drawInRect(thumbnailRect)
newImage = UIGraphicsGetImageFromCurrentImageContext()
if (newImage == nil) {
println("could not scale image")
}
// pop the context to get back to the default
UIGraphicsEndImageContext()
return newImage
}
Zobacz: http://stackoverflow.com/a/24196575/716216 –
możliwy duplikat [Swift UIColor initializer - kompilator Błąd tylko podczas kierowania na iPhone5s] (http://stackoverflow.com/questions/24196528/swift- uicolor-initializer-compiler-error-only-when-targeting-iphone5s) –