# Tester si un textField est vide



## HommeCocoa (19 Juillet 2005)

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


----------



## Ludopac (19 Juillet 2005)

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] != @"")
> {
> ...



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 :


```
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.


----------



## Ptit-beignet (19 Juillet 2005)

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


----------



## HommeCocoa (20 Juillet 2005)

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


----------

