existe-t-il un moyen de définir des valeurs par défaut pour les propriétés de classe d'une classe? strong>
Comme ce que nous pouvons faire en Java, dans le constructeur de la classe, par exemple .- 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. P> p>
3 Réponses :
Dans l'interface de la classe: puis, dans la mise en oeuvre: p> ( nsinteger code> est Un typlef pour
int code> ou
long code>, en fonction de l'architecture.) p> p>
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?
Si vous ne voulez pas spécifier de paramètres, puis lorsque vous faites Mais je ne vois pas pourquoi vous avez posté le constructeur avec des paramètres mais que vous ne voulez pas les utiliser. p> p> myClass * instance = [[[[MyClass Alloc] init] code>, il définira Les valeurs par défaut pour les ivars. P>
écrire le em> init, qui fait tout le travail d'initialisation complète. P>
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 em> ou que em> 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 em>, ce message manipulant Message Mise en œuvre) et donnez-le à la première. p>
Ce premier initiateur est appelé initiateur désigné. et assurez-vous de ne pas manquer Plusieurs initialisateurs et l'initialisateur désigné. strong>
jamais em> ignorer le désigné! p>
salutations p>
Par "variable de classe" voulez-vous dire "variable d'instance" (ivar)?
Désolé de ne pas le mentionner clairement. oui sa variable d'instance