2009-07-28 5 views
0

J'ai commencé à développer ma classe singleton mais j'ai un problème. Ce que je veux faire est d'avoir un objet de recherche contenant les valeurs du formulaire de recherche que je pourrais utiliser dans plusieurs vues. Je veux avoir la possibilité d'obtenir le singleton dans n'importe quelle vue afin d'effectuer la recherche ou de construire le formulaire de recherche. J'ai donc un ensemble de valeurs avec une valeur booléenne pour chaque savoir si la variable a été initialisé par l'utilisateur ou non, la cause ne sont pas tous les champs de recherche doit être rempliMeilleure façon d'utiliser mon singleton

Par exemple:.

NSString name= Bob; 
BOOL nameFilled =True; 

NSString adress= nil; 
BOOL adressFilled=false; 

NSNumber numberOfChilds = 0; 
BOOL numberOfChildsFilled = false; 

Donc, mon problème est que je ne peux pas conserver le booléen dans mon fichier d'en-tête parce que ce n'est pas une classe. Comment puis-je faire, y at-il une meilleure solution que ce que j'ai présenté ci-dessus? espère avoir été clair

+1

Supprimez-le !, nah juste joshing. –

Répondre

0

lieu d'utiliser int, utilisez NSNumber. Ensuite, pour les objets qui n'ont pas été spécifiés, utilisez 'nil', qui est distinct d'un NSNumber avec 0 comme valeur.

Vous n'avez pas besoin de @retain BOOL ou d'autres types primitifs dans Objective-C - vous n'avez besoin que de l'utiliser pour les types d'objet.

+0

oh ouais c'est une idée intelligente – Mathieu

2

Vous ne avez pas besoin d'avoir cette valeur booléenne pour voir si elle est remplie, pourquoi ne pas simplement utiliser l'objet lui-même pour voir si elle a été initialisé si quelque chose comme

if(name==nil) 
    //this means i t hasnt been initialized 
else 

    //this means it has 
0

Sérieusement, n'implémentez pas un singleton. Ce n'est pas nécessaire pour cette application. Vous devriez avoir une classe de modèle pour gérer cela. Essayez d'utiliser l'injection de dépendances et/ou les fichiers plist pour enregistrer les informations. Vous aurez un meilleur temps de débogage et d'extension des fonctionnalités.

+0

Qu'est-ce que vous appelez une «classe de modèle»? Je ne peux pas dire que je connais le terme. – Dinah

+0

Je ne vois pas vraiment ce que vous voulez dire – Mathieu

+0

Juste une classe pour encapsuler les données de votre modèle. Il peut contenir des données dans un dictionnaire ou d'autres variables d'instance. –

Questions connexes