Comment vérifier si imageView n'est pas nul dans swift?
J'ai une erreur fatale en ôter une valeur facultative en swift.
J'ai un profil ViewController avec une image de fond et une image d'un avatar de la sorcière sont les mêmes.
Lorsque l'utilisateur n'a pas un ensemble d'images, j'ai cette erreur fatale, au lieu je voudrais ajouter un "par défaut, la Forme de l'image".
Comment pourrais-je vérifier si l'image n'est pas nul ?
C'est mon code :
var currentUser = PFUser.currentUser()
let User = currentUser as PFUser
let userImage:PFFile = User["profileImage"] as PFFile {
userImage.getDataInBackgroundWithBlock{(imageData:NSData!, error:NSError!)-> Void in
if !(error != nil) {
var image:UIImage! = UIImage(data: imageData)
if image != 0 {
self.backgroundImageUser.image = image
self.avatarUserView.image = image
}
else if image == 0 {
self.backgroundImageUser.image = UIImage(named: "Shape")
self.avatarUserView.image = UIImage(named: "Shape")
}
}}}
- Vous pouvez supprimer le second si après votre autre. Car si le
image != 0
le deuxième cas n'est pas nécessaire. - vous devez savoir, le
error
pourrait être un objet valide (par exemple, avec le code: 0, OK), même si il n'y a pas de véritable erreur, de sorte qu'il n'est pas sûr de vérifier laerror
, ce que la logique peut travailler en Objc, mais ce n'est pas simple, Rapide, aussi longtemps que leerror
n'est pas une option. - comment avez-vous déclaré le userImage?
Vous devez vous connecter pour publier un commentaire.
Essayez ceci:
Afin de le faire fonctionner, vous devez comprendre Facultatif Chaîne.
Comme la Documentation d'Apple dit:
Donc, si vous voulez un objet pour obtenir une Valeur nulle, vous devez le déclarer comme Facultatif. Pour déclarer l'objet en tant qu'Option, Vous devez placer un point d'interrogation après la valeur.
Dans votre exemple, il va ressembler à ceci:
Et en déclarant ce UIImage en Option, il sera initialisé à zéro.
var image:UIImage! = ...
), qui est la même chose.!
est utilisé dans plus d'expressions. Un!
utilisé dans un type est un ImplicitlyUnwrappedOptional, qui est un type de type facultatif.En fait, le problème était jusqu'à, comme vous pouvez le voir dans le post édité, j'ai eu la userImage déclaration obligatoire.
Alors maintenant, tout fonctionne bien avec :