Tester si un textField est vide

HommeCocoa

Membre actif
3 Janvier 2003
173
0
Vevey - Suisse
Bonsoir à tous

Je suis à nouveau confronté à un problème tout bête que je peine à résoudre.

Je souhaiterais tester si un textField possède un contenu avant d'effectuer le traitement. Pour ceci j'ai fais une structure conditionnel avec un if()


Dans un language plus basique tel que le Pascal , j'aurais fais comme ceci:

If (MaString <> "") Then
Begin
... Mon traitement ...
End

Seulement avec les NSString, je m'y retrouve plus tellement. J'ai pensé à ceci mais ça ne fonctionne pas:

if ( [textFieldNom stringValue] != @"")
{
...Mon traitement ...
}

Pourtant la méthode stringValue renvoye bien une NSString? et si le champs de text ne contient rien ça devrait être égale à ça @""?

Merci encore à tous les membres de se forum
David
 
HommeCocoa a dit:
Seulement avec les NSString, je m'y retrouve plus tellement. J'ai pensé à ceci mais ça ne fonctionne pas:

if ( [textFieldNom stringValue] != @"")
{
...Mon traitement ...
}

Dans beaucoup de langages (Java, Objectif C, C...) tu ne peux pas utiliser les opérateurs 'normaux' pour la comparaison de deux chaînes de carectères. Cependant généralement des fonctions toutes faites existent.

En objectif C cela donne :

Bloc de code:
if (![[textFieldNom stringValue] isEqual:@""]) {
   ...Mon traitement ...
}

Tu as donc la comparaison [chaine1 isEqual:chaine2] qui renvoie YES ou NO suivant que les 2 chaînes de caractères sont égales ou non.
Tu rajoutes un ! devant la comparaison pour avoir un YES dans le cas ou la comparaison renvoie NO.
 
Hello,
je ne connais pas l'Obj-C mais il me semble que c'est un langage object.
Dans ce cas, NSString doit etre un objet. Or tu ne peux tester si un object est egal ou different d'un autre object avec les operateurs == ou != car dans ce cas tu compares les references des objects. Tu dois avoir une méthode pour comparer la valeur de l'object et non pas sa reference. Par exemple en java, tu as la méthode equals.
Si tu comprends mon petit laius :) c'est que tu comprends la philosophie objet ou c'est tout bon ;)
Si tu comprends pas mon discours sur les references plutot que les valeurs (ce qui risque d'etre le cas car tu parles de Pascal donc langage non objet), pose moi des questions sur ce que tu comprends pas et j'essaierai de t'expliquer mieux :)
A+
Vincent
 
Merci!

Oui en effet c'est idiot ce que j'avais fait car en faite j'ai simplement comparé les pointeurs d'objets...
C'est le Delphi qui m'a induit en erreur je crois car on peut comparer les chaines comme des variables, mais dans la philosophie de l'orienté objet, c'est vrai que ça n'as pas de sense.

Merci encore