alloc, ok mais init ? |
Bienvenue invité ( Connexion | Inscription )
alloc, ok mais init ? |
29 Jun 2014, 13:56
Message
#1
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 782 Inscrit : 11 Sep 2005 Membre no 45 692 |
Bonjour à tous,
J'ai ce genre de ligne : Code NSNumber *arg = [[NSNumberFormatter alloc] numberFromString:[NSString stringWithUTF8String:argv[1]]]; Je voulais savoir, d'après vous si c'est correct ou pas. La méthode numberFromString est une méthode d'instance, donc j'ai besoin de déclarer et de l'attribuer à une var mais n'est-il pas plus propre de passer par un init et ensuite de récupérer l'instance pour l'attribuer au NSNumber ? (faire en deux étapes quoi). Bref, j'aimerais plus de détails sur ce genre de chose. Merci à vous. -------------------- iMac 27" - MBP 15"
PC ASUS Z97 WIFI + Bluetooth - Intel Core i7-4790K CPU 4,00GHz - GeForce 980 GTX ZOTAC 4Go - 16Go RAM - SSD Crucial Bluetooth Device (Personal Area Network) Bluetooth Device (RFCOMM Protocol TDI) Carte réseau Broadcom 802.11ac Intel Ethernet Connection I218-V |
|
|
29 Jun 2014, 16:22
Message
#2
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Un formateur est fait pour formater, ce que tu ne fais pas dans ton exemple.
Je ferais plutôt quelques chose du genre : Code [NSNumber numberWithInt: [[NSString stringWithUTF8String:argv[1]] integerValue]]; ouCode [NSNumber numberWithFloat: [[NSString stringWithUTF8String:argv[1]] floatValue]];
|
|
|
29 Jun 2014, 17:44
Message
#3
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 782 Inscrit : 11 Sep 2005 Membre no 45 692 |
Je l'ai pas vu venir celle-là !!! J'utilisais le formatter parce que je n'avait pas vu ces méthodes dans NSString. Je cri au suicide
Merci pour ta réponse, bon mais quand est-il du init alors ? (admettons que le NSString ne soit pas possible ou qu'on applique cet exemple sur autre chose). Merci. -------------------- iMac 27" - MBP 15"
PC ASUS Z97 WIFI + Bluetooth - Intel Core i7-4790K CPU 4,00GHz - GeForce 980 GTX ZOTAC 4Go - 16Go RAM - SSD Crucial Bluetooth Device (Personal Area Network) Bluetooth Device (RFCOMM Protocol TDI) Carte réseau Broadcom 802.11ac Intel Ethernet Connection I218-V |
|
|
30 Jun 2014, 20:03
Message
#4
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 2 490 Inscrit : 19 Aug 2004 Lieu : 92 Membre no 22 254 |
Il faudrait savoir ce que font exactement les fonctions NSString::init et NSObject::init ... Il est sûr que c'est plus propre d'appeler init avant de travailler sur une instance d'un objet.
|
|
|
7 Jul 2014, 20:12
Message
#5
|
|
Macbidouilleur d'argent ! Groupe : Membres Messages : 782 Inscrit : 11 Sep 2005 Membre no 45 692 |
Ok, je suis complètement d'accord pour le init. Je vais chercher une réponse un peu plus technique, je repasserais si je trouve.
Merci. -------------------- iMac 27" - MBP 15"
PC ASUS Z97 WIFI + Bluetooth - Intel Core i7-4790K CPU 4,00GHz - GeForce 980 GTX ZOTAC 4Go - 16Go RAM - SSD Crucial Bluetooth Device (Personal Area Network) Bluetooth Device (RFCOMM Protocol TDI) Carte réseau Broadcom 802.11ac Intel Ethernet Connection I218-V |
|
|
13 Aug 2014, 16:10
Message
#6
|
|
Macbidouilleur d'Or ! Groupe : Membres Messages : 6 484 Inscrit : 21 Apr 2006 Membre no 59 799 |
Ok, je suis complètement d'accord pour le init. Je vais chercher une réponse un peu plus technique, je repasserais si je trouve. Merci. Salut, Il y a quelques explications dans la documentation d'Apple. En voici un petit résumé : En Objective-C, alloc crée une instance d'objet "vide", càd un objet dont toutes les propriétés valent 0. Tout objet doit être initialisé, et ça se passe via la méthode init. A noter :
Enfin, pour chaque classe, il peut exister des méthodes d'initialisation particulières permettant par exemple de fournir des valeurs initiales du style initWith... Les utiliser alors plutôt que le simple init. -------------------- ----------------- --JE-------SUIS-- --AHMED-CHARLIE-- --CLARISSA-YOAV-- ----------------- |
|
|
Nous sommes le : 26th April 2024 - 09:58 |