ios - create - uiimage frame swift 4
UIImage en swift no puede verificar nil (3)
Tengo el siguiente código en Swift
var image = UIImage(contentsOfFile: filePath)
if image != nil {
return image
}
Solía funcionar muy bien, pero ahora en Xcode Beta 6, esto devuelve una advertencia
''UIImage'' is not a subtype of ''NSString''
No sé qué hacer, intenté cosas diferentes como
if let image = UIImage(contentsOfFile: filePath) {
return image
}
Pero el error cambia a:
Bound value in a conditional binding must be of Optional type
¿Es esto un error en Xcode6 beta 6 o estoy haciendo algo mal?
Actualizar
Swift ahora agregó el concepto de inicializadores failibles y UIImage ahora es uno de ellos. El inicializador devuelve un Opcional por lo que si la imagen no se puede crear, devolverá nulo.
Las variables por defecto no pueden ser nil
. Es por eso que está recibiendo un error al intentar comparar la image
a nil
. Necesita definir explícitamente su variable como opcional :
let image: UIImage? = UIImage(contentsOfFile: filePath)
if image != nil {
return image!
}
func imageIsNullOrNot(imageName : UIImage)-> Bool
{
let size = CGSize(width: 0, height: 0)
if (imageName.size.width == size.width)
{
return false
}
else
{
return true
}
}
el método anterior llama como:
if (imageIsNullOrNot(selectedImage))
{
//image is not null
}
else
{
//image is null
}
aquí, verifico el tamaño de la imagen.
Init, que eres llamado init?(contentsOfFile path: String)
the ?
significa que devuelve valor opcional .
Debería verificar vars opcionales para nil
antes de usarlo.
Más corto, que la respuesta aceptada y el estilo Swift , que el llamado encadenamiento opcional para hacer eso:
if let image = UIImage(contentsOfFile: filePath) {
return image
}