6
votes

Dans Objective-C, est-il possible de définir la valeur par défaut pour une variable de classe?

existe-t-il un moyen de définir des valeurs par défaut pour les propriétés de classe d'une classe? Comme ce que nous pouvons faire en Java, dans le constructeur de la classe, par exemple .- xxx

pourquoi je cherche:

J'ai une classe avec environ 15 propriétés. Lorsque j'instire la classe, je dois définir toutes ces variables / propriétés avec certaines valeurs par défaut. Donc, cela rend mon code lourd aussi complexe. Si je pouvais définir des valeurs par défaut à ces variables d'instance de cette classe, cela doit réduire cette complexité / redondance de code.


2 commentaires

Par "variable de classe" voulez-vous dire "variable d'instance" (ivar)?


Désolé de ne pas le mentionner clairement. oui sa variable d'instance


3 Réponses :


1
votes

Dans l'interface de la classe: xxx

puis, dans la mise en oeuvre: xxx

( nsinteger est Un typlef pour int ou long , en fonction de l'architecture.)


1 commentaires

merci@wevan. Je dois toujours envoyer des params à la méthode d'initialisation. Y a-t-il un moyen d'utiliser init {} ou quelque chose comme celui-ci sans aucun param?



4
votes

Si vous ne voulez pas spécifier de paramètres, xxx

puis lorsque vous faites myClass * instance = [[[[MyClass Alloc] init] , il définira Les valeurs par défaut pour les ivars.

Mais je ne vois pas pourquoi vous avez posté le constructeur avec des paramètres mais que vous ne voulez pas les utiliser.


0 commentaires

3
votes

écrire le init, qui fait tout le travail d'initialisation complète.

Ensuite, écrivez simplement autant d'initiateurs avec différents ensembles de paramètres que vous le souhaitez (mais pensez-y: avez-vous vraiment besoin ce ou que one?). Non, ne les laissez pas faire le travail. Faites-les remplir toutes les valeurs par défaut (celles que vous ne fournissez pas au message , ce message manipulant Message Mise en œuvre) et donnez-le à la première.

Ce premier initiateur est appelé initiateur désigné. et assurez-vous de ne pas manquer Plusieurs initialisateurs et l'initialisateur désigné. jamais ignorer le désigné!

salutations


0 commentaires