iOS ne peut pas vérifier si l'objet est null
J'ai donc le code suivant:
- (IBAction)doSomething
{
if (txtName.text != (id)[NSNull null] || txtName.text.length != 0 ) {
NSString *msg = [[NSString alloc] initWithFormat:@"Hello, %@", txtName.text];
[lblMessage setText:msg];
}
}
txtName
est un UITextField
, ce que je fais mal? Je suis en train d'afficher un texte uniquement lorsque l'utilisateur tape quelque chose dans la boîte.
Cordialement,
Vous devez vous connecter pour publier un commentaire.
Texte dans un champ de texte est un
NSString
instance ounil
valeur, il n'est jamais égale à l'instance deNSNull
classe (ce qui est pas les mêmes que néant). Alors que le 1er comparaison, est toujours vrai, alors l'ensemble si la condition est évaluée à true et le message s'affiche.Vous pourriez corriger si votre état de
ou, comme l'envoi de longueur de message dans le néant sera de retour 0 de toute façon juste
bien que j'ai l'habitude d'utiliser la 1ère option avec 2 comparaisons
if (txtName.text != (id)[NSNull null] || txtName.text.length != 0 ) {
Lire que "Si le texte est null ou la longueur n'est pas 0"
txtName.text
n'est jamaisnil
(il vous suffit de comparernil
pour une valeur nulle de vérifier, par la voie) - la zone de texte contient toujours certains texte, même si elle est vide. Donc, la première d'une disjonction est toujours vrai, et la boîte apparaîtra toujours.J'ai eu le même problème comme vous. Ce problème se rapporte à NSNull classe. Et voici mon code pour vérifier objet est null.
Espère que cela peut vous aider.
[NSNull null]
Solution trouvée!
![txtName.text isEqualToString:@""]
Veuillez essayer ceci:
lorsque la valeur de myObj est néant ou < null>