1 00:00:00,000 --> 00:00:07,880 2 00:00:07,880 --> 00:00:09,800 >> RHED SHI: Bienvenue à voir séminaire CS50 - 3 00:00:09,800 --> 00:00:11,630 Introduction à iOS. 4 00:00:11,630 --> 00:00:13,290 Merci à vous tous d'être venus. 5 00:00:13,290 --> 00:00:16,610 J'espère que vous êtes aussi excités que je suis sur iOS. 6 00:00:16,610 --> 00:00:22,300 L'année dernière, j'ai pris CS50 comme un étudiant en deuxième année, et j'ai pratiquement appris iOS pour mon 7 00:00:22,300 --> 00:00:23,490 projet final. 8 00:00:23,490 --> 00:00:26,350 Et c'était assez - 9 00:00:26,350 --> 00:00:30,530 bien, ce n'était pas facile, mais il ya beaucoup de tutoriels de soutien en ligne. 10 00:00:30,530 --> 00:00:33,760 Et j'espère vraiment que cette séminaire, je vais vous donner les gars une tête 11 00:00:33,760 --> 00:00:36,750 commencer sur le développement iOS 12 00:00:36,750 --> 00:00:40,490 >> Donc, en termes de développement iOS, il ya deux choses principales que nous 13 00:00:40,490 --> 00:00:42,090 vouloir couvrir aujourd'hui. 14 00:00:42,090 --> 00:00:43,290 Tout d'abord, la langue - 15 00:00:43,290 --> 00:00:46,650 la langue va être en Objective-C. Nous entendons réellement 16 00:00:46,650 --> 00:00:47,750 quelque chose de vraiment passionnant. 17 00:00:47,750 --> 00:00:51,500 Ainsi, vous pouvez rejoindre l'ensemble d'Apple communauté de développeurs et construire une 18 00:00:51,500 --> 00:00:52,940 applications vraiment génial. 19 00:00:52,940 --> 00:00:58,670 >> Aussi, iOS 7 est belle, je l'espère, pour certains d'entre vous. 20 00:00:58,670 --> 00:01:01,130 Mais c'est controversé, je le sais. 21 00:01:01,130 --> 00:01:05,349 Et surtout, ce que je veux faire est le guide vous par Objective-C, et également 22 00:01:05,349 --> 00:01:10,650 Xcode, qui est intégré au environnement de développement que vous serez 23 00:01:10,650 --> 00:01:13,460 travaillant dans iOS. 24 00:01:13,460 --> 00:01:19,140 >> Et donc, juste un mot sur Objective-C. Fondamentalement, c'est exactement la même chose que C, 25 00:01:19,140 --> 00:01:22,790 mais avec beaucoup d'autres choses. 26 00:01:22,790 --> 00:01:27,710 Et donc, plus strictement, c'est en fait un super-ensemble de C. Donc, tout ce que vous 27 00:01:27,710 --> 00:01:32,280 peut faire en C en ce moment, ce qui est aimez essentiellement pset 0 à 6, vous 28 00:01:32,280 --> 00:01:34,170 peut faire en Objective-C. 29 00:01:34,170 --> 00:01:38,620 >> Donc, ne vous sentez pas peur de cette nouvelle langue que vous allez apprendre. 30 00:01:38,620 --> 00:01:42,120 Vous avez déjà couvert beaucoup de lui, parce que vous avez tous fait C ce passé 31 00:01:42,120 --> 00:01:45,880 semestre, sauf que maintenant vous allez d'avoir beaucoup plus de travailler avec. 32 00:01:45,880 --> 00:01:49,270 Et je vais vous conduire à travers un quelques exemples pour mettre en évidence certains 33 00:01:49,270 --> 00:01:53,920 des principales différences que j'ai trouvé étaient vraiment important quand j'ai appris 34 00:01:53,920 --> 00:01:57,180 Objective-C l'année dernière. 35 00:01:57,180 --> 00:02:00,910 >> Eh bien en fait, oui, l'autre point est, Objective-C est, de toute évidence, 36 00:02:00,910 --> 00:02:02,200 orientée objet. 37 00:02:02,200 --> 00:02:06,340 Et nous allons discuter un peu ce que cela signifie plus tard. 38 00:02:06,340 --> 00:02:11,340 Fondamentalement, c'est comme la façon dont vous avez travaillé avec struct dans ce jeu de processeurs passé, avec 39 00:02:11,340 --> 00:02:13,360 nœuds et même d'autres des choses comme ça. 40 00:02:13,360 --> 00:02:17,110 Sauf, en Objective-C, tout est un objet, et vous allez être 41 00:02:17,110 --> 00:02:20,720 passant autour des pointeurs vers des objets plutôt que les valeurs elles-mêmes. 42 00:02:20,720 --> 00:02:25,050 Donc, c'est juste quelque chose d'important garder à l'esprit. 43 00:02:25,050 --> 00:02:29,140 >> Alors, pourquoi ne pas commencer avec un peu différences de syntaxe entre C et 44 00:02:29,140 --> 00:02:30,540 Objective-C? 45 00:02:30,540 --> 00:02:38,310 Je tiens à souligner le # include, vous savoir, io.h norme en C et C + +, avec 46 00:02:38,310 --> 00:02:44,030 la version Objective-C de ce qui est # import, puis une sorte de 47 00:02:44,030 --> 00:02:44,790 fichier d'en-tête. 48 00:02:44,790 --> 00:02:48,165 Dans ce cas, il serait UIKit, vous le savez, réduire UIKit.h. 49 00:02:48,165 --> 00:02:53,560 Il pourrait également être, vous le savez, MKMapview vous slash MKMapview.h si vous voulez 50 00:02:53,560 --> 00:02:56,370 à faire, comme, une carte à l'intérieur de votre application. 51 00:02:56,370 --> 00:02:57,110 Des choses semblables comme ça. 52 00:02:57,110 --> 00:03:01,250 >> Donc, la chose importante est notamment a maintenant changé d'importer. 53 00:03:01,250 --> 00:03:04,340 Mais l'idée demeure. 54 00:03:04,340 --> 00:03:10,460 Vous allez être importer une sorte de fichier d'en-tête dans votre programme. 55 00:03:10,460 --> 00:03:14,550 >> Je tiens également à souligner la différence entre printf et NSLog. 56 00:03:14,550 --> 00:03:19,760 Cependant, comme nous le disions plus tôt, Objective-C est un super-ensemble strict de 57 00:03:19,760 --> 00:03:22,800 C, ce qui signifie qu'il existe printf en Objective-C, aussi. 58 00:03:22,800 --> 00:03:24,340 Mais, la plupart des gens n'utilisent pas que. 59 00:03:24,340 --> 00:03:28,245 La plupart des gens utilisent ce NSLog parce qu'il vous donne un timbre de temps, et nous verrons 60 00:03:28,245 --> 00:03:29,780 en action plus tard. 61 00:03:29,780 --> 00:03:33,560 Mais, c'est généralement une plus utiles manière à imprimer des variables. 62 00:03:33,560 --> 00:03:38,220 >> Et je tiens également à souligner que NSLog prend exactement de la même 63 00:03:38,220 --> 00:03:41,650 valeurs d'espace réservé comme printf fait - 64 00:03:41,650 --> 00:03:45,900 si% d est un int, % F est un flotteur. 65 00:03:45,900 --> 00:03:49,750 Cependant, je ne veux mettre en évidence ce tout dernier - 66 00:03:49,750 --> 00:03:52,960 NSLog% au signe - 67 00:03:52,960 --> 00:03:55,390 c'est un espace réservé pour un objet. 68 00:03:55,390 --> 00:04:01,160 Et comme je le disais plus tôt, Objective-C traite assez bien la plupart du temps dans les objets, 69 00:04:01,160 --> 00:04:05,020 et si cela se fera dans l'utilisation lorsque vous vouloir imprimer, peut-être, peut-être un 70 00:04:05,020 --> 00:04:08,390 NSArray, ou NSDictionary, ou un NSString. 71 00:04:08,390 --> 00:04:13,750 >> Ainsi, également, remarquer que, dans notre NSLog déclaration, nous avons un signe au devant 72 00:04:13,750 --> 00:04:15,380 de la citation - 73 00:04:15,380 --> 00:04:20,769 c'est pour signifier que les chaînes, maintenant, en Objective-C sont des objets. 74 00:04:20,769 --> 00:04:23,310 Ils ne sont plus simplement carac étoiles. 75 00:04:23,310 --> 00:04:25,530 Ils sont des objets et sont traitée comme telle. 76 00:04:25,530 --> 00:04:28,690 >> Donc, il est vraiment important que lorsque vous utilisez NSLog il faut dans un NS 77 00:04:28,690 --> 00:04:32,580 chaîne, ce qui signifie que vous aurez d'inclure un au devant de votre 78 00:04:32,580 --> 00:04:34,270 guillemets. 79 00:04:34,270 --> 00:04:38,290 Et c'est pourquoi vous voyez, ici, dans l'ensemble de ma fonction appelle à ce NSLog, je 80 00:04:38,290 --> 00:04:42,400 avoir un au devant des citations, même si le% d et f de l'% sont 81 00:04:42,400 --> 00:04:45,200 tout de même à partir de C. 82 00:04:45,200 --> 00:04:47,930 >> Vous avez des questions à ce jour? 83 00:04:47,930 --> 00:04:50,920 Je vais essayer de passer par ce rapidement afin que nous pouvons avoir plus de temps pour travailler 84 00:04:50,920 --> 00:04:55,210 avec Xcode et Objective-C, de sorte que vous les gars peuvent obtenir de plus 85 00:04:55,210 --> 00:04:57,630 familier avec elle. 86 00:04:57,630 --> 00:05:01,900 >> Ensuite, je tiens à souligner quelque chose conceptuellement importante. 87 00:05:01,900 --> 00:05:05,130 Donc, en C, la plupart des choses sont des fonctions. 88 00:05:05,130 --> 00:05:06,280 Nous faisons un appel de fonction. 89 00:05:06,280 --> 00:05:10,190 Nous déclarons les fonctions de cette façon, avec tapez d'abord le retour, puis le 90 00:05:10,190 --> 00:05:13,570 nom de la fonction, entre parenthèses, puis quelles que soient les arguments et le type de 91 00:05:13,570 --> 00:05:15,590 ces arguments que nous voulons passer po 92 00:05:15,590 --> 00:05:19,970 Et Objective-C, parce que tout est un objet ou une classe - 93 00:05:19,970 --> 00:05:23,970 si la classe et l'objet sont deux termes qui sont pour la plupart synonyme de l'autre, 94 00:05:23,970 --> 00:05:28,270 afin que je puisse les utiliser de façon interchangeable tout au long du séminaire. 95 00:05:28,270 --> 00:05:34,090 >> Mais, vous verrez que nous avons des méthodes de Objective-C plutôt que de fonctions. 96 00:05:34,090 --> 00:05:36,390 Et méthodes appartiennent à des objets. 97 00:05:36,390 --> 00:05:38,950 Ainsi, tout comme, peut-être prendre par exemple, noeud - 98 00:05:38,950 --> 00:05:40,250 notre type [inaudible] 99 00:05:40,250 --> 00:05:44,390 noeud de pset 6 ou 5 - 100 00:05:44,390 --> 00:05:49,590 nous avons le mot, la propriété, ou la prochaine pointeur de nœud. 101 00:05:49,590 --> 00:05:53,880 Les méthodes sont tout simplement des fonctions à l'intérieur d'une sorte de structure. 102 00:05:53,880 --> 00:05:57,510 >> Donc, dans ce cas, la structure serait l'objet, et la méthode est 103 00:05:57,510 --> 00:05:59,260 quelque chose qui appartient à un objet. 104 00:05:59,260 --> 00:06:02,650 Et voilà comment vous déclarer, en quelque sorte, une méthode. 105 00:06:02,650 --> 00:06:07,990 Vous souhaitez commencer avec, encore une fois, le retour Type - oui, j'ai essayé de couleur 106 00:06:07,990 --> 00:06:12,990 coder les mots clés ici afin que vous les gars peut voir l', au moins, la mise en forme 107 00:06:12,990 --> 00:06:17,650 similitudes entre la fonction déclarations et déclarations de méthode. 108 00:06:17,650 --> 00:06:21,990 Donc, vous commencez, vous le savez, un retour Type - dans ce cas, c'est un tableau, ou 109 00:06:21,990 --> 00:06:23,910 un pointeur NSArray - 110 00:06:23,910 --> 00:06:26,710 et puis vous avez cette méthode. 111 00:06:26,710 --> 00:06:30,900 Et puis, ce qui est intéressant ici est qu'au lieu d'avoir parenthèses, nous 112 00:06:30,900 --> 00:06:32,900 avoir ces deux points. 113 00:06:32,900 --> 00:06:38,450 Et puis, en face de nos arguments, nous mettre, encore une fois, entre parenthèses le type 114 00:06:38,450 --> 00:06:39,370 de notre argumentation. 115 00:06:39,370 --> 00:06:43,160 >> Donc, en ce moment je suis en train de faire la comparaison entre, vous le savez, et n 116 00:06:43,160 --> 00:06:45,450 nombre, parce qu'ils sont deux entiers tels que. 117 00:06:45,450 --> 00:06:49,580 Et ensuite, l'autre est un type NSUInteger. 118 00:06:49,580 --> 00:06:56,390 Et puis, en Objective-C, lorsque vous vouloir avoir plusieurs arguments dans 119 00:06:56,390 --> 00:07:00,030 votre clause de méthode, vous, en quelque sorte, séparer les sortir un peu comme ce - 120 00:07:00,030 --> 00:07:03,790 Je ne suis pas sûr de savoir comment le décrire, mais c'est un bon exemple de la façon dont vous 121 00:07:03,790 --> 00:07:06,530 peut avoir plusieurs arguments là. 122 00:07:06,530 --> 00:07:10,360 >> Vous pouvez, bien sûr, juste totalement ignorer le côlon andArray NSArray 123 00:07:10,360 --> 00:07:13,240 tableau si vous voulez juste une méthode qui prend en un argument. 124 00:07:13,240 --> 00:07:13,677 Oui, question. 125 00:07:13,677 --> 00:07:18,701 >> PUBLIC: Les deux NSUInteger et Arguments NSArray qui peuvent être prises en 126 00:07:18,701 --> 00:07:21,530 à l'intérieur de la NSArray? 127 00:07:21,530 --> 00:07:22,060 >> RHED SHI: Oui. 128 00:07:22,060 --> 00:07:23,400 Alors, laissez-moi vous expliquer. 129 00:07:23,400 --> 00:07:23,790 Donc, oui. 130 00:07:23,790 --> 00:07:30,260 Donc, la question était sont NSUInteger et NSArray * types des arguments, 131 00:07:30,260 --> 00:07:31,570 et c'est exact. 132 00:07:31,570 --> 00:07:35,700 Donc, vous voulez toujours de préciser ce le type de votre argument est. 133 00:07:35,700 --> 00:07:41,570 Et ici, je vais essayer de vous présenter à une partie de la syntaxe et de vocabulaire 134 00:07:41,570 --> 00:07:45,910 Objective-C, ce sont donc les types réels que vous serez confrontés. 135 00:07:45,910 --> 00:07:48,970 >> Et comme vous le verrez, les tableaux ne sont plus, en quelque sorte, 136 00:07:48,970 --> 00:07:50,780 choses simples de support. 137 00:07:50,780 --> 00:07:52,060 Ils sont des objets. 138 00:07:52,060 --> 00:07:56,700 Bien que, si nous allons à la prochaine diapositive, nous pouvons voir que nous pouvons 139 00:07:56,700 --> 00:08:02,510 coder en dur un NSArray en Objective-C avec simplement un symbole au devant 140 00:08:02,510 --> 00:08:04,190 les supports. 141 00:08:04,190 --> 00:08:08,650 Je ne suis pas, en fait, tout à fait sûr que Je syntaxiquement codé en dur un tableau 142 00:08:08,650 --> 00:08:16,020 correctement pour la version C, mais c'est censé être dans un tableau C. 143 00:08:16,020 --> 00:08:19,760 >> Donc, c'est la façon dont vous le voulez bien, vous savez, peut-être utiliser les fonctions ou la 144 00:08:19,760 --> 00:08:21,990 méthodes que nous avons créé plus tôt. 145 00:08:21,990 --> 00:08:22,250 Droite? 146 00:08:22,250 --> 00:08:25,340 Donc, c'est là que nous déclarons notre fonction et notre méthode. 147 00:08:25,340 --> 00:08:28,020 Et maintenant, nous voulons les utiliser dans notre programme, et c'est 148 00:08:28,020 --> 00:08:29,450 comment nous pourrions le faire. 149 00:08:29,450 --> 00:08:32,400 Donc, en C, vous auriez, vous le savez, peut-être, un bool b, et vous le réglez à 150 00:08:32,400 --> 00:08:36,549 égale à la fonction, puis vous passez dans les arguments. 151 00:08:36,549 --> 00:08:39,190 >> En Objective-C, il est assez près la même chose. 152 00:08:39,190 --> 00:08:43,370 Vous avez NSArray * my_array, et c'est aller à égal - maintenant, la seule 153 00:08:43,370 --> 00:08:47,460 différence ici est cet objet chose, qui j'ai surligné en jaune, et 154 00:08:47,460 --> 00:08:51,180 comme vous pouvez le voir, en C, il ya pas d'autre mot jaune. 155 00:08:51,180 --> 00:08:54,170 Et c'est parce que les méthodes appartiennent avec un certain objet. 156 00:08:54,170 --> 00:08:59,800 C'est pour cela que j'ai besoin d'avoir un objet que, en quelque sorte, appelle cette méthode sur 157 00:08:59,800 --> 00:09:04,360 le nombre zéro, puis le NSArray a, b, c, d. 158 00:09:04,360 --> 00:09:05,350 Vous avez des questions à ce sujet? 159 00:09:05,350 --> 00:09:12,190 >> Nous verrons ces concepts en action bientôt quand nous entrons dans une démo. 160 00:09:12,190 --> 00:09:13,400 OK. 161 00:09:13,400 --> 00:09:17,170 Maintenant, je veux parler un peu brièvement Xcode environ 5, qui est le 162 00:09:17,170 --> 00:09:21,160 environnement de développement intégré que vous allez travailler avec. 163 00:09:21,160 --> 00:09:26,160 Je sais que beaucoup d'entre vous, ou certains d'entre vous, Mac n'ont pas, ce qui est un problème 164 00:09:26,160 --> 00:09:30,490 parce Xcode n'est pas disponible pour Windows et PC. 165 00:09:30,490 --> 00:09:32,785 Ne me demandez pas pourquoi, mais probablement - 166 00:09:32,785 --> 00:09:33,730 ouais, entreprise. 167 00:09:33,730 --> 00:09:35,290 Peu importe. 168 00:09:35,290 --> 00:09:39,360 Mais de toute façon, oui, je m'excuse si certains vous ne devez télécharger une sorte de 169 00:09:39,360 --> 00:09:43,000 machine virtuelle pour Mac dans afin de lancer Xcode 5. 170 00:09:43,000 --> 00:09:46,460 Mais c'est un très chouette logiciel à utiliser. 171 00:09:46,460 --> 00:09:51,280 >> Et donc, avant de nous plonger dans une sorte de démonstration, je veux juste vous montrer une 172 00:09:51,280 --> 00:09:55,700 image de ce que Xcode ressemble dans votre fenêtre, puis aussi parler 173 00:09:55,700 --> 00:09:57,670 ce tout cet espace est. 174 00:09:57,670 --> 00:10:01,600 Donc, c'est un peu comme apprendre à utiliser Microsoft Word, sauf que vous voulez 175 00:10:01,600 --> 00:10:04,675 se familiariser avec toutes les différentes choses qui 176 00:10:04,675 --> 00:10:06,250 sont en cours ici. 177 00:10:06,250 --> 00:10:11,160 >> Alors d'abord, je tiens à vous signaler à la barre d'outils en haut. 178 00:10:11,160 --> 00:10:14,450 Vous verrez que, au sommet, vous aurez le nom du fichier - 179 00:10:14,450 --> 00:10:18,100 ou, en fait, le nom de votre projet puis le nom de votre fichier. 180 00:10:18,100 --> 00:10:20,940 Prenez note de la pièce et les boutons d'arrêt. 181 00:10:20,940 --> 00:10:24,210 Ce sont ceux que vous serez aide pour exécuter votre application sur le 182 00:10:24,210 --> 00:10:25,600 simulateur - 183 00:10:25,600 --> 00:10:26,550 le simulateur iOS. 184 00:10:26,550 --> 00:10:29,940 Cela vient automatiquement avec Xcode 5, de sorte que vous n'avez pas à vous soucier de 185 00:10:29,940 --> 00:10:32,070 télécharger une sorte de simulateur. 186 00:10:32,070 --> 00:10:34,700 Vous appuyez simplement sur le jeu et il exécute votre application. 187 00:10:34,700 --> 00:10:39,230 Et vous pouvez jouer avec vous, et vous verrez comment cela fonctionne plus tard. 188 00:10:39,230 --> 00:10:42,690 >> Et puis, dans le centre, bien sûr, est où toute votre belle Code est 189 00:10:42,690 --> 00:10:44,240 va aller. 190 00:10:44,240 --> 00:10:48,340 Et puis, sur le côté gauche, vous aurez avoir cette, en quelque sorte, le dossier - 191 00:10:48,340 --> 00:10:50,340 navigation - 192 00:10:50,340 --> 00:10:53,970 et puis, vous verrez aussi que, le long de avec l'icône du dossier, il ya un 193 00:10:53,970 --> 00:10:57,680 tas d'autres icônes qui il sera utile plus tard. 194 00:10:57,680 --> 00:11:04,710 >> Et puis, sur le côté droit est un utilitaire zone où vous pouvez travailler avec 195 00:11:04,710 --> 00:11:09,620 certains des objets et spécifier, vous savoir, ce que la couleur devrait être, ce 196 00:11:09,620 --> 00:11:12,040 la police du texte devrait être, et cetera. 197 00:11:12,040 --> 00:11:15,890 Bien, tout ce que vous faites dans la zone d'utilité, vous pouvez 198 00:11:15,890 --> 00:11:17,480 faire dans le code ainsi. 199 00:11:17,480 --> 00:11:21,630 Et donc, je vais y aller par deux des exemples d'utilisation, il suffit, pas de code à 200 00:11:21,630 --> 00:11:23,730 tous - ou un code très minime - 201 00:11:23,730 --> 00:11:28,290 vers tout le code, juste pour que vous les gars savez ce que vous pouvez et ne pouvez pas faire dans 202 00:11:28,290 --> 00:11:29,260 Xcode et Objective-C. 203 00:11:29,260 --> 00:11:32,770 >> Et puis, enfin, au bas, vous avez la zone de mise au point. 204 00:11:32,770 --> 00:11:37,270 Ainsi, vous n'avez plus à courir GDB, et cetera, sur vos programmes. 205 00:11:37,270 --> 00:11:39,180 Il fait automatiquement pour vous. 206 00:11:39,180 --> 00:11:42,880 Et vous pouvez également imprimer choses à ce domaine. 207 00:11:42,880 --> 00:11:46,790 Donc en fait, plus tard, nous allons passer par mario.c, si vous les gars se souviennent encore 208 00:11:46,790 --> 00:11:49,000 que, dans Xcode. 209 00:11:49,000 --> 00:11:50,360 Ce qui devrait être amusant. 210 00:11:50,360 --> 00:11:55,870 >> Et puis, juste pour le ramener à Objective-C, je tiens à souligner que 211 00:11:55,870 --> 00:11:57,440 vous pouvez faire avec les instructions if. 212 00:11:57,440 --> 00:12:03,160 Donc, vous savez, parce que Objective-C est un ensemble du C, tout ce que vous faites est, 213 00:12:03,160 --> 00:12:06,890 littéralement, le même que C. Vous venez avoir de légères différences. 214 00:12:06,890 --> 00:12:10,810 Ainsi, vous remarquerez la forme d'un si déclaration est toujours le même - vous avez 215 00:12:10,810 --> 00:12:14,280 si, et puis vous avez des parenthèses un état intérieur de, et puis 216 00:12:14,280 --> 00:12:17,150 accolades pour tout ce que vous vouloir faire à l'intérieur de là. 217 00:12:17,150 --> 00:12:21,680 >> Cependant, je voulais mettre en place cette diapositive ici, simplement pour illustrer le fait que, 218 00:12:21,680 --> 00:12:25,680 parce que nous avons affaire à des objets maintenant, nous aurons à utiliser ces choses 219 00:12:25,680 --> 00:12:31,240 appelé comme, est égale à la chaîne, qui est, comme par hasard, une méthode de 220 00:12:31,240 --> 00:12:33,710 chaîne ou un objet NSString. 221 00:12:33,710 --> 00:12:38,600 Donc, le mot, dans ce cas, est une NSString objet, et il a une méthode appelée est 222 00:12:38,600 --> 00:12:44,150 égale à la chaîne, puis nous passons dans une chaîne codée en dur à voir 223 00:12:44,150 --> 00:12:48,110 si ceux qui sont égaux à une autre. 224 00:12:48,110 --> 00:12:51,580 >> Vous avez des questions à ce jour? 225 00:12:51,580 --> 00:12:52,440 OK. 226 00:12:52,440 --> 00:12:56,190 Et, je voudrais revenir sur une déclaration pour aussi. 227 00:12:56,190 --> 00:13:01,420 >> Ainsi, par exemple, si nous voulions boucle au-dessus de la longueur d'une chaîne en C, cette 228 00:13:01,420 --> 00:13:03,710 devrait vous être familier. 229 00:13:03,710 --> 00:13:07,840 Et, en Objective-C, je ne veux de mettre en évidence ce, en quelque sorte, 230 00:13:07,840 --> 00:13:09,235 méthode appelée comptage. 231 00:13:09,235 --> 00:13:13,260 232 00:13:13,260 --> 00:13:15,550 Eh bien, en fait, permettez-moi il suffit de prendre ce retour. 233 00:13:15,550 --> 00:13:17,200 Count est une méthode de tableau. 234 00:13:17,200 --> 00:13:21,070 Cependant, il est plus spécifiquement un propriété de tableau, c'est pourquoi vous 235 00:13:21,070 --> 00:13:22,380 peut utiliser la notation par points. 236 00:13:22,380 --> 00:13:25,870 Mais je ne veux pas entrer dans trop de ce truc conceptuel, je veux juste 237 00:13:25,870 --> 00:13:30,140 vous montrer comment les choses allaient chercher comme en Objective-C par rapport à C. 238 00:13:30,140 --> 00:13:35,400 >> Et aussi, je tiens à souligner que même si je me sers de NSUInteger 239 00:13:35,400 --> 00:13:39,860 devant tous mes i de en Objective-C, vous pouvez également utiliser int, int, car c'est 240 00:13:39,860 --> 00:13:42,290 totalement valable en Objective-C, aussi. 241 00:13:42,290 --> 00:13:42,475 Oui? 242 00:13:42,475 --> 00:13:44,350 >> PUBLIC: Est-il juste stylistique, ou est - 243 00:13:44,350 --> 00:13:44,760 >> RHED SHI: Ouais. 244 00:13:44,760 --> 00:13:46,060 Donc, comme vous le verrez - 245 00:13:46,060 --> 00:13:49,390 , la question était est que juste une question de style. 246 00:13:49,390 --> 00:13:54,820 Comme vous le verrez, j'ai, en quelque sorte, étoile astérisque chose vers le bas au fond, et 247 00:13:54,820 --> 00:13:59,870 ce lien vous amène à un débordement de la pile former, où quelqu'un explique 248 00:13:59,870 --> 00:14:03,640 la différence entre un int dans NSInteger et un NSUInteger. 249 00:14:03,640 --> 00:14:05,540 Et oui, vous pouvez lire à ce sujet plus tard. 250 00:14:05,540 --> 00:14:07,640 Ces diapositives seront, bien sûr, s'offrent à vous. 251 00:14:07,640 --> 00:14:10,300 252 00:14:10,300 --> 00:14:11,280 >> Voyons. 253 00:14:11,280 --> 00:14:12,150 OK, impressionnant. 254 00:14:12,150 --> 00:14:15,410 Donc, ce qui est également inclus dans la glissière parce que je pensais que c'était un grand 255 00:14:15,410 --> 00:14:19,370 site qui vous présente à la syntaxe Objective-C. 256 00:14:19,370 --> 00:14:24,410 Donc, en fait, pourquoi ne pas aller vivre Chrome et consultez ce site? 257 00:14:24,410 --> 00:14:30,650 258 00:14:30,650 --> 00:14:31,300 >> Droite. 259 00:14:31,300 --> 00:14:36,670 Donc, ce que je veux vous montrer gars ici est cette image. 260 00:14:36,670 --> 00:14:41,630 Donc, cela est, en quelque sorte, va être ce vous allez voir à l'intérieur de tout 261 00:14:41,630 --> 00:14:42,890 fichier de Xcode. 262 00:14:42,890 --> 00:14:47,400 263 00:14:47,400 --> 00:14:51,430 En fait, pourquoi ne prenons-nous pas juste une moment pour, en quelque sorte, prendre ce po 264 00:14:51,430 --> 00:14:53,470 >> Donc, ce livre - 265 00:14:53,470 --> 00:14:55,880 c'est l'objet qui nous avons affaire. 266 00:14:55,880 --> 00:14:59,680 Et puis, il est de toute évidence va être hérité d'un autre objet, mais 267 00:14:59,680 --> 00:15:01,810 vous n'avez pas à vous inquiéter à ce sujet. 268 00:15:01,810 --> 00:15:04,430 Et puis, peut-être, a certaines variables membres. 269 00:15:04,430 --> 00:15:09,160 >> La chose importante que je veux vous montrer sont les méthodes d'instance, ici. 270 00:15:09,160 --> 00:15:12,670 Ainsi, les méthodes d'instance sont désignés par ce signe moins. 271 00:15:12,670 --> 00:15:15,550 Et puis, comme vous le verrez, nous sommes commencent déjà à voir le paradigme 272 00:15:15,550 --> 00:15:17,670 pour déclaration de méthode, non? 273 00:15:17,670 --> 00:15:22,670 Le type de retour, le nom de la méthode, et puis le type de l'argument, et 274 00:15:22,670 --> 00:15:24,660 puis le nom de l'argument. 275 00:15:24,660 --> 00:15:29,090 Et ce signe moins signifie que c'est un Procédé d'exemple, ce qui signifie que 276 00:15:29,090 --> 00:15:32,270 ces méthodes ne sont disponibles que pour les objets qui ont été instancié. 277 00:15:32,270 --> 00:15:35,050 278 00:15:35,050 --> 00:15:39,100 >> Pour contraster que, les méthodes avec un plus signer en face d'eux sont de classe 279 00:15:39,100 --> 00:15:43,640 méthodes, ce qui signifie que vous pouvez appeler ces méthodes, même si vous n'avez pas 280 00:15:43,640 --> 00:15:45,970 un objet encore créé. 281 00:15:45,970 --> 00:15:51,600 Ainsi, pour un exemple clair, NSString est une classe. 282 00:15:51,600 --> 00:15:55,850 Et vous pouvez appeler, par exemple, méthodes de classe sur NSString - 283 00:15:55,850 --> 00:15:58,660 le réel, comme, mot NSString. 284 00:15:58,660 --> 00:16:02,050 >> Toutefois, pour pouvoir utiliser ceux-ci méthodes, vous avez réellement 285 00:16:02,050 --> 00:16:03,460 besoin pour créer une chaîne. 286 00:16:03,460 --> 00:16:08,980 Par exemple, NSString star string est égal à à guillemet, bonjour monde. 287 00:16:08,980 --> 00:16:10,910 Et puis, vous pouvez utiliser ces méthodes - 288 00:16:10,910 --> 00:16:11,990 méthodes d'instance - 289 00:16:11,990 --> 00:16:14,790 sur cette chaîne mondiale de bonjour. 290 00:16:14,790 --> 00:16:17,825 Donc, c'est la différence entre méthodes d'instance et des méthodes de classe. 291 00:16:17,825 --> 00:16:20,390 292 00:16:20,390 --> 00:16:21,930 >> Et, nous avons juste couvert cette partie. 293 00:16:21,930 --> 00:16:25,300 294 00:16:25,300 --> 00:16:33,750 Les propriétés sont une autre chose qui sont l'intérieur des objets, essentiellement. 295 00:16:33,750 --> 00:16:37,530 Et vous les déclarez avec la propriété au mot-clé. 296 00:16:37,530 --> 00:16:39,940 Vous avez ces options, ici, que je vous expliquerai plus tard quand 297 00:16:39,940 --> 00:16:43,110 nous entrons dans une démo. 298 00:16:43,110 --> 00:16:43,660 Oui? 299 00:16:43,660 --> 00:16:43,950 Salut. 300 00:16:43,950 --> 00:16:45,440 >> PUBLIC: Pourriez-vous zoomer, s'il vous plaît? 301 00:16:45,440 --> 00:16:46,130 >> RHED SHI: Oh oui. 302 00:16:46,130 --> 00:16:46,560 Désolé. 303 00:16:46,560 --> 00:16:49,140 >> PUBLIC: Je vous remercie. 304 00:16:49,140 --> 00:16:50,005 >> RHED SHI: Cela devrait être beaucoup mieux. 305 00:16:50,005 --> 00:16:51,240 >> PUBLIC: Ouais. 306 00:16:51,240 --> 00:16:53,940 Merci. 307 00:16:53,940 --> 00:16:56,815 >> RHED SHI: Oui, s'il vous plaît rappelez-moi si J'oublie pour zoomer ou dézoomer. 308 00:16:56,815 --> 00:17:00,590 309 00:17:00,590 --> 00:17:03,570 Donc, c'est tout ce que je voulais à vous montrer pour - 310 00:17:03,570 --> 00:17:05,970 whoa, c'est beaucoup - 311 00:17:05,970 --> 00:17:06,790 pour ce site. 312 00:17:06,790 --> 00:17:12,210 Donc, revenons à nos diapositives. 313 00:17:12,210 --> 00:17:17,819 >> En fait, maintenant, nous allons prendre un moment à plonger dans une démo. 314 00:17:17,819 --> 00:17:25,490 Donc, nous allons commencer par une nouveau projet Xcode. 315 00:17:25,490 --> 00:17:33,040 Donc, si vous ouvrez Xcode sur tous vos machines, il convient de prendre un certain 316 00:17:33,040 --> 00:17:36,720 la page où il est dit, comme, ouverte en place d'un projet existant ou un nouveau 317 00:17:36,720 --> 00:17:39,230 projet, et vous devriez cliquez sur un nouveau projet. 318 00:17:39,230 --> 00:17:41,477 Et puis, il faut prendre vous à cet écran. 319 00:17:41,477 --> 00:17:41,593 Oui? 320 00:17:41,593 --> 00:17:44,279 >> PUBLIC: Si nous n'avons pas un Mac, ne nous juste un peu froid? 321 00:17:44,279 --> 00:17:46,870 >> RHED SHI: Ou rechercher sur avec quelqu'un, ouais. 322 00:17:46,870 --> 00:17:47,740 Ouais. 323 00:17:47,740 --> 00:17:50,660 Vous pourrez vous détendre aussi. 324 00:17:50,660 --> 00:17:51,570 OK. 325 00:17:51,570 --> 00:17:55,410 >> Donc, ce que nous allons faire en premier, maintenant, est, en fait, nous allons faire un 326 00:17:55,410 --> 00:17:56,600 seule application de vue. 327 00:17:56,600 --> 00:18:01,340 Donc, si vous remarquez, ce qui est bien sur Xcode et le soutien d'Apple pour 328 00:18:01,340 --> 00:18:05,690 développeurs, c'est que vous avez beaucoup de modèles pour travailler avec déjà. 329 00:18:05,690 --> 00:18:09,210 Vous pourriez, par exemple, faire une l'application maître-détail. 330 00:18:09,210 --> 00:18:10,920 Vous pouvez faire un jeu - 331 00:18:10,920 --> 00:18:13,860 et en fait, je ne vais pas entrer dans les jeux, parce que les jeux sont une autre histoire 332 00:18:13,860 --> 00:18:15,320 pour le développement iOS. 333 00:18:15,320 --> 00:18:18,930 Et ils genre de séparation, je ne vais pas entrer dans les détails. 334 00:18:18,930 --> 00:18:22,580 >> , Basé sur la page, vous avez applications. 335 00:18:22,580 --> 00:18:24,010 Vous disposez d'une application onglet - 336 00:18:24,010 --> 00:18:29,350 si voulez, par exemple, Bank of America a probablement, comme, une application onglets. 337 00:18:29,350 --> 00:18:32,140 C'est ceux où vous avez les boutons en bas. 338 00:18:32,140 --> 00:18:34,750 Et puis, vous avez un jeu de Kit Sprite. 339 00:18:34,750 --> 00:18:38,670 >> Ou vous pouvez travailler à partir de zéro, ce qui c'est ce que nous ferons plus tard. 340 00:18:38,670 --> 00:18:42,470 Mais nous allons d'abord commencer par une seule application de vue. 341 00:18:42,470 --> 00:18:48,590 Ensuite, il va demander un nom de produit, et nous ne pouvons faire l'essai. 342 00:18:48,590 --> 00:18:50,190 Nom de l'organisation - 343 00:18:50,190 --> 00:18:54,140 oui, nom de l'organisation, entreprise identifiant - 344 00:18:54,140 --> 00:18:58,100 ceux qui sont importants si vous allez de mettre votre application sur l'App Store. 345 00:18:58,100 --> 00:19:01,110 346 00:19:01,110 --> 00:19:05,116 Autre que cela, votre code va fonctionner tout à fait bien sans cela. 347 00:19:05,116 --> 00:19:09,940 >> Cela va être important si vous voulez - si, en soi, comme, mettre votre application 348 00:19:09,940 --> 00:19:14,080 sur votre téléphone ou quelque chose, et le test il, vous le savez, dans la vie réelle - 349 00:19:14,080 --> 00:19:15,360 ce sera important. 350 00:19:15,360 --> 00:19:20,110 Ceci tend à être généralement associée avec une sorte de compte développeur 351 00:19:20,110 --> 00:19:20,970 avec Apple. 352 00:19:20,970 --> 00:19:24,740 >> Et oui, je sais, sans doute, beaucoup d'entre vous n'aura pas de comptes de développement. 353 00:19:24,740 --> 00:19:26,460 Je sais que l'université a un. 354 00:19:26,460 --> 00:19:27,630 Je pense que CS a un. 355 00:19:27,630 --> 00:19:32,770 Mais, vous pouvez m'envoyer un email et je vais essayer pour comprendre cela pour vous. 356 00:19:32,770 --> 00:19:38,210 Mais en ce moment, je viens de mettre en des choses de l'espace réservé ici. 357 00:19:38,210 --> 00:19:41,250 >> Et vous pouvez, bien sûr, ici, choisissez si vous voulez qu'il soit uniquement dans 358 00:19:41,250 --> 00:19:44,410 iPhone, iPad dans, ou les deux - 359 00:19:44,410 --> 00:19:46,630 application universelle. 360 00:19:46,630 --> 00:19:56,170 Donc, pour le moment, nous allons faire universel, juste de voir les deux côtés de la plate-forme. 361 00:19:56,170 --> 00:19:57,120 >> Voyons. 362 00:19:57,120 --> 00:20:01,510 Donc, maintenant, je vais sauver dans une sorte de dossier. 363 00:20:01,510 --> 00:20:04,500 Peu importe où - vous peut toujours se déplacer plus tard. 364 00:20:04,500 --> 00:20:09,380 Et, maintenant, nous sommes amenés à notre projet Xcode. 365 00:20:09,380 --> 00:20:12,890 Je ne voudrais pas vous soucier de tout cela. 366 00:20:12,890 --> 00:20:17,510 Je suggère de ne pas toucher tout de ce, sauf si vous savez exactement ce que 367 00:20:17,510 --> 00:20:18,260 que vous faites. 368 00:20:18,260 --> 00:20:21,750 Donc, tout cela, juste ignorer pour la plupart. 369 00:20:21,750 --> 00:20:26,940 Vous n'aurez pas besoin d'y toucher, et si vous faire vous gâcher certaines choses ici, il 370 00:20:26,940 --> 00:20:28,600 devient un peu difficile. 371 00:20:28,600 --> 00:20:32,480 >> Alors, pourquoi ne nous attendons pas à les fichiers sur le 372 00:20:32,480 --> 00:20:34,700 côté gauche dans notre navigateur. 373 00:20:34,700 --> 00:20:37,060 Ici, nous avons AppDelegate.h. 374 00:20:37,060 --> 00:20:43,430 Nous avons AppDelegate.m Donc, comme vous aurez avis, nous avons en-tête des fichiers, qui 375 00:20:43,430 --> 00:20:45,720 fin en point h, et nous avons mise en œuvre - 376 00:20:45,720 --> 00:20:46,970 effectivement, je agrandir 377 00:20:46,970 --> 00:20:56,270 378 00:20:56,270 --> 00:20:57,060 OK. 379 00:20:57,060 --> 00:20:59,940 Permettez-moi agrandir 380 00:20:59,940 --> 00:21:05,810 >> Bon, alors vous avez en-tête des fichiers et vous avez des fichiers de mise en œuvre. 381 00:21:05,810 --> 00:21:07,060 En fait - 382 00:21:07,060 --> 00:21:08,680 383 00:21:08,680 --> 00:21:09,240 OK. 384 00:21:09,240 --> 00:21:11,800 C'est un peu bizarre, mais garder avec moi. 385 00:21:11,800 --> 00:21:16,140 Ensuite, parce que nous avons choisi une vue unique application, nous allons être 386 00:21:16,140 --> 00:21:17,340 travailler avec storyboard. 387 00:21:17,340 --> 00:21:22,140 >> Donc, storyboard est quelque chose que Apple a mis au point pour aider vraiment 388 00:21:22,140 --> 00:21:26,550 développeurs prototyper rapidement leurs applications. 389 00:21:26,550 --> 00:21:29,410 Donc, c'est là que vous pouvez créer des une application sans avoir à écrire une 390 00:21:29,410 --> 00:21:31,710 seule ligne de code. 391 00:21:31,710 --> 00:21:35,390 Cependant, dans notre application de vue unique, nous n'avons, bien entendu, avons un 392 00:21:35,390 --> 00:21:41,270 déposer notre point de vue, qui est un contrôleur d'affichage. 393 00:21:41,270 --> 00:21:45,150 Donc, nous avons la tête et le fichier de mise en œuvre, ici. 394 00:21:45,150 --> 00:21:52,350 >> Et, je vais effectuer un zoom arrière maintenant, parce que nous devons travailler dans le storyboard. 395 00:21:52,350 --> 00:21:55,190 Donc, voici notre avis. 396 00:21:55,190 --> 00:22:00,120 Si nous, tout simplement, exécuter l'application à l'heure actuelle, il n'y a pas beaucoup d'excitant se passe. 397 00:22:00,120 --> 00:22:03,270 398 00:22:03,270 --> 00:22:05,040 Donc, vous voyez cet écran blanc. 399 00:22:05,040 --> 00:22:06,110 OK? 400 00:22:06,110 --> 00:22:14,010 >> Et, dans notre secteur des services publics, nous pouvons ajouter un tas de choses différentes à elle. 401 00:22:14,010 --> 00:22:19,290 Donc, quand vous avez affaire avec des écrans dans iOS, contrôleurs de vue sont les 402 00:22:19,290 --> 00:22:23,150 objets qui encapsulent, en quelque sorte, votre point de vue. 403 00:22:23,150 --> 00:22:26,980 Ainsi, un contrôleur de vue toujours a une propriété appelée vue. 404 00:22:26,980 --> 00:22:29,610 Et ce point de vue, généralement, contient, vous savez, ce que vous 405 00:22:29,610 --> 00:22:30,810 envie de voir sur un écran. 406 00:22:30,810 --> 00:22:39,210 >> Donc, bien, disons simplement commencer par mettre, peut-être, peut-être une étiquette. 407 00:22:39,210 --> 00:22:41,450 Donc, nous allons mettre une étiquette sur il - 408 00:22:41,450 --> 00:22:44,080 coller dans le milieu. 409 00:22:44,080 --> 00:22:49,560 Donc, maintenant que j'ai cliqué sur l'étiquette, je peut aller dans l'inspecteur des propriétés 410 00:22:49,560 --> 00:22:51,510 et commencer à changer sa valeur. 411 00:22:51,510 --> 00:22:55,040 Appelons-CS50 couleurs. 412 00:22:55,040 --> 00:22:58,220 >> Et, je peux également changer la police. 413 00:22:58,220 --> 00:23:02,630 Ainsi, au lieu de système, de faire ce qui est la valeur par défaut, nous pouvons faire un un personnalisé. 414 00:23:02,630 --> 00:23:03,770 Nous pouvons changer - 415 00:23:03,770 --> 00:23:06,453 vous le savez, UltraLight, faire 32. 416 00:23:06,453 --> 00:23:09,000 417 00:23:09,000 --> 00:23:11,370 Et puis, nous pouvons faire de notre grande boîte. 418 00:23:11,370 --> 00:23:14,410 >> PUBLIC: Pensez-vous que vous pouvez zoomer dans un peu plus, peut-être? 419 00:23:14,410 --> 00:23:14,810 >> RHED SHI: Ouais? 420 00:23:14,810 --> 00:23:16,196 OK. 421 00:23:16,196 --> 00:23:17,450 >> PUBLIC: il suffit de taper? 422 00:23:17,450 --> 00:23:19,020 >> RHED SHI: Voyons voir. 423 00:23:19,020 --> 00:23:20,382 Est-ce que ce travail? 424 00:23:20,382 --> 00:23:22,270 >> PUBLIC: Juste passer le Xcode? 425 00:23:22,270 --> 00:23:23,520 >> RHED SHI: Bien sûr. 426 00:23:23,520 --> 00:23:25,620 427 00:23:25,620 --> 00:23:25,940 OK. 428 00:23:25,940 --> 00:23:26,275 Impressionnant. 429 00:23:26,275 --> 00:23:27,072 >> PUBLIC: L'étiquette sous? 430 00:23:27,072 --> 00:23:28,920 L'étiquette? 431 00:23:28,920 --> 00:23:29,480 >> RHED SHI: Qu'est-ce que c'est? 432 00:23:29,480 --> 00:23:32,050 >> PUBLIC: Que déroulante était l'étiquette sous? 433 00:23:32,050 --> 00:23:35,170 >> RHED SHI: Donc, la question est, qu'est-ce déroulante était l'étiquette sous? 434 00:23:35,170 --> 00:23:37,260 Il faut, tout simplement, être là-dessous. 435 00:23:37,260 --> 00:23:39,330 Je suppose que c'est une chose de cube. 436 00:23:39,330 --> 00:23:40,910 Mais généralement, c'est la valeur par défaut - 437 00:23:40,910 --> 00:23:43,250 Je vais ici jusqu'à ce que je trouve une étiquette. 438 00:23:43,250 --> 00:23:45,800 439 00:23:45,800 --> 00:23:47,730 Ouais. 440 00:23:47,730 --> 00:23:48,950 >> Alors maintenant, nous avons notre label. 441 00:23:48,950 --> 00:23:51,040 Disons le centrer. 442 00:23:51,040 --> 00:23:56,410 Et Xcode nous donne des lignes directrices pour les objets de centrage. 443 00:23:56,410 --> 00:23:59,510 444 00:23:59,510 --> 00:24:01,480 Donc, maintenant nous allons exécuter notre code. 445 00:24:01,480 --> 00:24:08,110 446 00:24:08,110 --> 00:24:08,800 >> Nous y voilà. 447 00:24:08,800 --> 00:24:10,310 Donc, nous avons CS50 couleurs. 448 00:24:10,310 --> 00:24:13,720 449 00:24:13,720 --> 00:24:15,420 Et maintenant, nous allons mettre un bouton là-bas, non? 450 00:24:15,420 --> 00:24:17,480 Parce que nous voulons faire cette interactive. 451 00:24:17,480 --> 00:24:19,410 Alors, mettons ici un bouton. 452 00:24:19,410 --> 00:24:39,020 Et nous appelons ce bouton "robinet ici pour continuer. "Nous allons centrer, aussi 453 00:24:39,020 --> 00:24:39,990 En fait, il est déjà centré. 454 00:24:39,990 --> 00:24:40,630 Ouais. 455 00:24:40,630 --> 00:24:43,130 >> Donc, maintenant nous avons un bouton. 456 00:24:43,130 --> 00:24:53,000 Et si nous courons ce nouveau, nous allons d'avoir un joli petit bouton ici. 457 00:24:53,000 --> 00:24:56,520 Et je peux cliquer, mais il ne le fait pas quoi que ce soit, parce que nous n'avons pas fait 458 00:24:56,520 --> 00:24:58,500 quoi que ce soit avec le bouton encore. 459 00:24:58,500 --> 00:25:01,740 >> Donc, nous allons créer une autre vue, non? 460 00:25:01,740 --> 00:25:04,160 Donc, disons que je veux exploiter ce bouton et je veux 461 00:25:04,160 --> 00:25:05,730 aller vers une autre page - 462 00:25:05,730 --> 00:25:06,820 autre point de vue. 463 00:25:06,820 --> 00:25:14,440 Ce que je vais faire, je peux créer un contrôleur de vue, non? 464 00:25:14,440 --> 00:25:19,690 Maintenant, je vais cliquer sur mon bouton, puis, l'important, c'est que je vais 465 00:25:19,690 --> 00:25:20,910 cliquez sur - ou - 466 00:25:20,910 --> 00:25:23,660 oui, le contrôle de la presse sur mon clavier. 467 00:25:23,660 --> 00:25:24,880 Contrôle. 468 00:25:24,880 --> 00:25:27,005 Cliquez sur le bouton, puis faites glisser. 469 00:25:27,005 --> 00:25:29,960 470 00:25:29,960 --> 00:25:33,550 >> Alors, n'oubliez pas de maintenir la touche de commande. 471 00:25:33,550 --> 00:25:35,160 Faisons ça. 472 00:25:35,160 --> 00:25:40,930 Ainsi, détenir le contrôle, cliquez et faites glisser à ce que vous voulez faire. 473 00:25:40,930 --> 00:25:41,520 OK. 474 00:25:41,520 --> 00:25:43,610 >> Et maintenant, j'ai plusieurs options ici. 475 00:25:43,610 --> 00:25:47,900 Je peux soit pousser, ou que je peux faire un modale, ou je peux faire une coutume. 476 00:25:47,900 --> 00:25:50,900 Poussoir est que si vous avez un dispositif de commande de navigation. 477 00:25:50,900 --> 00:25:54,270 À l'heure actuelle, notre première vue contrôleur n'est pas à l'intérieur de toute 478 00:25:54,270 --> 00:25:55,610 dispositif de commande de navigation. 479 00:25:55,610 --> 00:25:59,500 Ainsi, le dispositif de commande de navigation est l'un qui vous donne la touche de retour sur 480 00:25:59,500 --> 00:26:03,910 l'application iOS où vous avez, vous savez, que haut, en quelque sorte, la barre d'épaisseur - 481 00:26:03,910 --> 00:26:06,480 où vous pouvez revenir en arrière, ou avant, et cetera. 482 00:26:06,480 --> 00:26:07,740 En ce moment, je n'ai pas. 483 00:26:07,740 --> 00:26:11,050 Et donc, c'est pourquoi je ne peux pas faire un effort. 484 00:26:11,050 --> 00:26:12,480 >> Alors, j'ai cliqué sur poussoir accidentellement, ici. 485 00:26:12,480 --> 00:26:16,480 Et effectivement, nous allons exécuter le code, et il devrait s'écraser sur moi. 486 00:26:16,480 --> 00:26:19,770 487 00:26:19,770 --> 00:26:22,960 Seulement si j'appuie sur le bouton si, si - 488 00:26:22,960 --> 00:26:23,420 droite. 489 00:26:23,420 --> 00:26:26,480 Donc, cela est mauvais. 490 00:26:26,480 --> 00:26:31,330 >> Et, comme vous pouvez le voir, ici, nous avoir le message d'erreur. 491 00:26:31,330 --> 00:26:35,460 Ainsi, «enchaînements Push ne peuvent être utilisés lorsque contrôleur de source est géré par un 492 00:26:35,460 --> 00:26:40,700 instance de contrôleur de la navigation de l'interface utilisateur ". Ainsi, parce que ce n'était pas à l'intérieur d'un 493 00:26:40,700 --> 00:26:44,030 dispositif de commande de navigation, Je ne pouvais pas le faire. 494 00:26:44,030 --> 00:26:48,782 >> Donc, maintenant, je vais retourner à la dossier, datant de storyboard. 495 00:26:48,782 --> 00:26:51,680 >> PUBLIC: Quelle est la navigation contrôleur, encore une fois? 496 00:26:51,680 --> 00:26:55,260 >> RHED SHI: Donc, maintenant je vais vous montrer. 497 00:26:55,260 --> 00:26:56,200 Voyons. 498 00:26:56,200 --> 00:27:00,510 Donc, je vais cliquer sur ce point de vue contrôleur, et puis je vais aller 499 00:27:00,510 --> 00:27:03,920 à produit - 500 00:27:03,920 --> 00:27:06,240 en fait, non, désolé - éditeur. 501 00:27:06,240 --> 00:27:08,360 Et je vais aller en - 502 00:27:08,360 --> 00:27:09,350 effectivement, je n'ai clique dessus? 503 00:27:09,350 --> 00:27:10,070 Non. 504 00:27:10,070 --> 00:27:11,080 Nous y voilà. 505 00:27:11,080 --> 00:27:16,270 Je vais monter dans l'éditeur, descends à incorporer dans, puis navigation 506 00:27:16,270 --> 00:27:17,520 contrôleur. 507 00:27:17,520 --> 00:27:20,130 508 00:27:20,130 --> 00:27:20,720 >> OK. 509 00:27:20,720 --> 00:27:27,750 Et, mon espace de travail ressemble vraiment malpropre, nous allons donc nettoyer cette place. 510 00:27:27,750 --> 00:27:29,000 Donc, tout cela est storyboard. 511 00:27:29,000 --> 00:27:32,510 512 00:27:32,510 --> 00:27:33,760 Et de cette manière - 513 00:27:33,760 --> 00:27:37,030 514 00:27:37,030 --> 00:27:38,280 OK, arrêtez - 515 00:27:38,280 --> 00:27:49,320 516 00:27:49,320 --> 00:27:50,860 Je peux rapidement construire quelque chose comme ceci. 517 00:27:50,860 --> 00:27:53,020 Et puis, maintenant, je peux revenir en arrière, vous savez? 518 00:27:53,020 --> 00:27:55,730 >> Mais c'est un peu ennuyeux, non? 519 00:27:55,730 --> 00:28:03,020 Donc, ce que je veux faire, c'est, je ne veux pas à faire, tout simplement, une vue 520 00:28:03,020 --> 00:28:03,870 contrôleur. 521 00:28:03,870 --> 00:28:07,720 Disons que je voulais vraiment faire une vue de la table de commande, afin que je puisse mettre en 522 00:28:07,720 --> 00:28:12,110 quelques belles couleurs, dans la table. 523 00:28:12,110 --> 00:28:16,210 >> Donc, maintenant que je l'ai mis dans ma vue de tableau contrôleur, j'ai besoin de le connecter à nouveau 524 00:28:16,210 --> 00:28:18,560 de ce bouton à l' contrôleur de vue. 525 00:28:18,560 --> 00:28:21,780 Donc, je dois faire mon contrôle, cliquer, glisser chose de nouveau. 526 00:28:21,780 --> 00:28:27,318 Et maintenant, je peux faire pousser, parce que je l'intégrer à l'intérieur d'un dispositif de commande de navigation. 527 00:28:27,318 --> 00:28:32,210 >> PUBLIC: contrôleur de navigation juste vous permet d'aller d'un endroit à l'autre? 528 00:28:32,210 --> 00:28:33,540 >> RHED SHI: Oui. 529 00:28:33,540 --> 00:28:38,670 Donc, plus techniquement, il est un objet où - 530 00:28:38,670 --> 00:28:43,150 si, à l'intérieur de la navigation objet de contrôleur, il 531 00:28:43,150 --> 00:28:44,780 assure le suivi d'un tableau. 532 00:28:44,780 --> 00:28:48,300 Et ce tableau contient toutes les ultérieur voir les contrôleurs. 533 00:28:48,300 --> 00:28:51,560 C'est pourquoi, lorsque vous appuyez sur le dos, il va revenir à la page précédente. 534 00:28:51,560 --> 00:28:55,260 Parce que le dispositif de commande de navigation objet, ou le code qui prend soin de 535 00:28:55,260 --> 00:28:58,890 cet objet, a un tableau qui maintient suivi de ces contrôleurs de vue, et 536 00:28:58,890 --> 00:29:01,870 peut alors, vous le savez, la vue DQ contrôleur et de vous redonner la 537 00:29:01,870 --> 00:29:02,750 précédent. 538 00:29:02,750 --> 00:29:05,200 >> Donc, c'est quelque chose de technique, mais - 539 00:29:05,200 --> 00:29:07,505 et je vous montrerai plus tard dans code, si nous avons le temps. 540 00:29:07,505 --> 00:29:10,270 Je suis un peu à court de temps, mais - 541 00:29:10,270 --> 00:29:15,610 >> Ainsi, avec la vue sur la table, ce que nous pouvons faire est de - 542 00:29:15,610 --> 00:29:18,440 Il est généralement réglée automatiquement Dynamic Prototype - 543 00:29:18,440 --> 00:29:20,640 nous allons rendre cellules statiques, sinon nous allons 544 00:29:20,640 --> 00:29:22,920 rencontrer quelques problèmes. 545 00:29:22,920 --> 00:29:28,470 >> Et puis, disons que je vais d'avoir une section. 546 00:29:28,470 --> 00:29:31,000 Ainsi, les articles est comme - 547 00:29:31,000 --> 00:29:35,160 si vous avez déjà vu l'application de la musique, quand vous avez artistes, sections serait 548 00:29:35,160 --> 00:29:37,830 être les A travers Z's - 549 00:29:37,830 --> 00:29:38,780 les lettres - 550 00:29:38,780 --> 00:29:42,600 et puis, vous savez, l'individu lignes seraient les noms des artistes. 551 00:29:42,600 --> 00:29:47,460 Et donc, ce qui est cool ici, c'est que je peux accéder à tous les objets à l'intérieur 552 00:29:47,460 --> 00:29:50,430 de mon storyboard à travers ce menu déroulant, trop. 553 00:29:50,430 --> 00:29:56,600 >> Donc, je vais cliquer sur mon article, et je veux, vous le savez, peut-être cinq lignes. 554 00:29:56,600 --> 00:30:00,770 Et puis, à l'intérieur de chaque ligne, Je tiens à mettre une étiquette. 555 00:30:00,770 --> 00:30:04,080 556 00:30:04,080 --> 00:30:06,340 Et je vais appeler ce bleu. 557 00:30:06,340 --> 00:30:09,530 558 00:30:09,530 --> 00:30:15,630 Et puis, je veux mettre une vue de l'interface utilisateur, vous savoir, peut-être pour, comme, une petite boîte. 559 00:30:15,630 --> 00:30:23,840 560 00:30:23,840 --> 00:30:28,710 >> Alors que je peux montrer aux gens un aperçu de la couleur. 561 00:30:28,710 --> 00:30:34,150 Et je vais revenir à la propriété et changer cette couleur pour, oh, je ne sais pas 562 00:30:34,150 --> 00:30:35,510 savoir, celle-ci. 563 00:30:35,510 --> 00:30:38,630 564 00:30:38,630 --> 00:30:43,150 >> Et puis, vous remarquerez également, ici, quand j'ai les accessoires, je peux avoir beaucoup 565 00:30:43,150 --> 00:30:46,160 des différents accessoires que vous voyez habituellement. 566 00:30:46,160 --> 00:30:55,250 L'indicateur de la divulgation, le détail, ou coche, ou tout simplement détail. 567 00:30:55,250 --> 00:30:59,080 Alors, peut-être que nous pouvons faire, comme, une divulgation indicateur, par exemple. 568 00:30:59,080 --> 00:31:03,540 >> Et puis, pourquoi ne prenons-nous pas ceux-ci, copie coller, et les mettre dans le 569 00:31:03,540 --> 00:31:06,740 prochaine ligne de la table. 570 00:31:06,740 --> 00:31:08,115 Ainsi, nous pouvons appeler cela jaune. 571 00:31:08,115 --> 00:31:10,620 572 00:31:10,620 --> 00:31:12,155 Et je pourrais avoir à étendre cette. 573 00:31:12,155 --> 00:31:15,730 574 00:31:15,730 --> 00:31:17,290 Faisons jaune. 575 00:31:17,290 --> 00:31:20,610 Et de cette façon, nous pouvons copier coller notre chemin vers le bas. 576 00:31:20,610 --> 00:31:24,910 577 00:31:24,910 --> 00:31:25,370 Qu'est-ce? 578 00:31:25,370 --> 00:31:26,620 Violet. 579 00:31:26,620 --> 00:31:30,020 580 00:31:30,020 --> 00:31:34,740 >> Donc, ce sont tous les CS50 typique couleurs que vous avez vu en classe - 581 00:31:34,740 --> 00:31:37,160 effectivement, désolé - 582 00:31:37,160 --> 00:31:38,410 ou sur le site Web. 583 00:31:38,410 --> 00:31:49,700 584 00:31:49,700 --> 00:31:51,260 J'espère que vous les gars peuvent voir ce que je fais ici. 585 00:31:51,260 --> 00:31:57,270 586 00:31:57,270 --> 00:31:57,890 OK. 587 00:31:57,890 --> 00:31:58,490 Dernier. 588 00:31:58,490 --> 00:32:02,040 >> PUBLIC: Comment avez-vous ajouté la rangée d'abord? 589 00:32:02,040 --> 00:32:04,740 >> RHED SHI: Donc, la question était de savoir comment ai-je ajouter la ligne départ? 590 00:32:04,740 --> 00:32:07,500 Je suis allé dans cette section de la table - ou mais je peux 591 00:32:07,500 --> 00:32:09,200 sélectionnez la section de table - 592 00:32:09,200 --> 00:32:11,250 et puis, ici, j'ai mis à jour le nombre de lignes. 593 00:32:11,250 --> 00:32:19,920 594 00:32:19,920 --> 00:32:22,505 >> Et, permettez-moi d'espérer que cela fonctionne. 595 00:32:22,505 --> 00:32:30,620 596 00:32:30,620 --> 00:32:31,480 OK. 597 00:32:31,480 --> 00:32:32,870 Voyons voir si cela fonctionne. 598 00:32:32,870 --> 00:32:34,000 Oh, parfait, impressionnant. 599 00:32:34,000 --> 00:32:35,300 OK. 600 00:32:35,300 --> 00:32:40,330 Alors que je construis ma démo, certains les choses ne sont pas alignés, donc, merci pour 601 00:32:40,330 --> 00:32:42,510 les applaudissements. 602 00:32:42,510 --> 00:32:42,920 >> Ouais. 603 00:32:42,920 --> 00:32:44,770 Donc, nous allons voir. 604 00:32:44,770 --> 00:32:47,550 Nous allons faire ce neuf juste pour faire tout - ou plutôt, disons simplement 605 00:32:47,550 --> 00:32:51,420 tourner tout de ceux-ci dans la divulgation indicateurs. 606 00:32:51,420 --> 00:32:55,790 Et puis, ce que je veux vous montrer, aussi, était de savoir comment je peux prendre chacun de ces 607 00:32:55,790 --> 00:32:59,230 lignes de la table et de les faire interagir - 608 00:32:59,230 --> 00:33:00,150 oh. 609 00:33:00,150 --> 00:33:01,400 Non. 610 00:33:01,400 --> 00:33:05,700 611 00:33:05,700 --> 00:33:06,030 >> Oh. 612 00:33:06,030 --> 00:33:07,230 Aussi, je tiens à vous montrer - 613 00:33:07,230 --> 00:33:13,080 ici, je peux mettre le titre de mon contrôleur de navigation, non? 614 00:33:13,080 --> 00:33:17,090 Donc en fait, vous remarquerez, dès que je intégré ce contrôleur de vue de l'intérieur 615 00:33:17,090 --> 00:33:22,010 du dispositif de commande de navigation, on voit cette barre de navigation en haut de notre 616 00:33:22,010 --> 00:33:25,340 représentation storyboard d'un contrôleur d'affichage. 617 00:33:25,340 --> 00:33:29,270 Et oui, cela nous donne, comme, un visuel, en quelque sorte, de guider notre écran visible. 618 00:33:29,270 --> 00:33:34,360 Ce va évidemment la barre de navigation. 619 00:33:34,360 --> 00:33:40,950 >> Et ce que je veux faire rapidement, maintenant, est mis dans un autre - 620 00:33:40,950 --> 00:33:45,880 si ce contrôleur de vue de tableau que j'ai fait par prendre un de ces et en le faisant glisser 621 00:33:45,880 --> 00:33:49,800 ici, et c'est ce qui m'a permis de rapidement, vraiment, de créer une vue de tableau 622 00:33:49,800 --> 00:33:50,850 contrôleur. 623 00:33:50,850 --> 00:33:54,100 Si nous avons le temps cependant, vous aurez voir que, par programmation, c'est un 624 00:33:54,100 --> 00:33:57,660 peu plus difficile de créer une table contrôleur de vue, car il 625 00:33:57,660 --> 00:34:02,520 sont un couple de méthodes qui sont vous sont nécessaires pour, en quelque sorte, écrivez 626 00:34:02,520 --> 00:34:07,130 dans l'ordre pour la vue de table contrôleur pour être affiché correctement. 627 00:34:07,130 --> 00:34:15,340 >> Cependant, je tiens à vous montrer, maintenant, un exemple où, si je prends ce, 628 00:34:15,340 --> 00:34:15,920 par exemple - 629 00:34:15,920 --> 00:34:18,290 J'ai mis dans un autre contrôleur de vue. 630 00:34:18,290 --> 00:34:27,320 Et maintenant, disons que je veux contrôler alt mon premier bleu 631 00:34:27,320 --> 00:34:28,980 ligne de la table ici. 632 00:34:28,980 --> 00:34:31,070 Et je tiens à appeler ce bleu. 633 00:34:31,070 --> 00:34:32,570 Et puis - 634 00:34:32,570 --> 00:34:34,159 Voyons. 635 00:34:34,159 --> 00:34:41,050 Je suis à la vue, et je peux changer l'arrière-plan en bleu. 636 00:34:41,050 --> 00:34:45,945 >> Et donc, un avis, ici, cette liste déroulante menu vous donne aussi une hiérarchie de tous 637 00:34:45,945 --> 00:34:47,040 de ces objets. 638 00:34:47,040 --> 00:34:50,530 Donc, une chose importante à noter, ici, est que toutes ces choses, ici - 639 00:34:50,530 --> 00:34:54,330 ce contrôleur de vue de la table, la table vue, vue de tableau section, vue de tableau 640 00:34:54,330 --> 00:34:57,169 cellule - tous ces éléments sont objets, dans le code. 641 00:34:57,169 --> 00:35:03,752 Donc, vous savez, une étiquette est maintenant sous le point de vue du contenu, etc. 642 00:35:03,752 --> 00:35:05,020 Ainsi de suite et ainsi de suite. 643 00:35:05,020 --> 00:35:08,765 >> Donc, si nous courons ce code, nous devrait voir quelque chose - 644 00:35:08,765 --> 00:35:15,816 645 00:35:15,816 --> 00:35:17,870 Voyons si ce - ouais. 646 00:35:17,870 --> 00:35:18,670 Donc, là, nous allons. 647 00:35:18,670 --> 00:35:22,120 Mais, si nous ne le faisons pas, aucun de ces autres choses. 648 00:35:22,120 --> 00:35:22,500 Droite? 649 00:35:22,500 --> 00:35:23,800 Alors que celui-ci fonctionne. 650 00:35:23,800 --> 00:35:29,100 Et, pour des raisons de temps, je ne veux pas aller en, vous le savez, la mise 651 00:35:29,100 --> 00:35:29,770 vers le bas les autres. 652 00:35:29,770 --> 00:35:32,020 Et c'est la fin de, en quelque sorte, storyboard - 653 00:35:32,020 --> 00:35:33,400 ce que je voulais montrer vous pour storyboard. 654 00:35:33,400 --> 00:35:36,330 655 00:35:36,330 --> 00:35:43,490 >> Et, j'ai un exemple élaboré, effectivement, ici. 656 00:35:43,490 --> 00:35:48,090 Donc, c'est le storyboard que j'ai fait auparavant. 657 00:35:48,090 --> 00:35:52,740 Donc, comme vous pouvez le voir, ce n'était mon contrôleur de navigation. 658 00:35:52,740 --> 00:35:57,040 Ensuite, j'ai eu mon premier contrôleur de vue, puis j'ai eu mon contrôleur de vue de table, 659 00:35:57,040 --> 00:35:58,980 et puis j'ai eu tous ces - 660 00:35:58,980 --> 00:36:01,180 si auparavant, je faisais quelque chose de très différent. 661 00:36:01,180 --> 00:36:04,450 Donc, excusez ces choses. 662 00:36:04,450 --> 00:36:07,930 Je vais probablement le nettoyer plus tard avant J'envoie le tout à la production. 663 00:36:07,930 --> 00:36:12,800 >> Mais, si nous courons, nous verrons que toutes les options sont 664 00:36:12,800 --> 00:36:14,050 à notre disposition. 665 00:36:14,050 --> 00:36:18,540 666 00:36:18,540 --> 00:36:21,320 Sauf que je n'ai pas fait les milieux ces couleurs. 667 00:36:21,320 --> 00:36:26,510 Donc, belle application simple. 668 00:36:26,510 --> 00:36:28,340 >> Maintenant, nous allons essayer d'aborder ce programme. 669 00:36:28,340 --> 00:36:31,270 670 00:36:31,270 --> 00:36:32,130 OK. 671 00:36:32,130 --> 00:36:37,570 Donc, pour ce faire, nous allons tout simplement pour démarrer un nouveau projet Xcode. 672 00:36:37,570 --> 00:36:41,920 Nous faisons une application vide maintenant, parce que nous ne voulons pas avoir la 673 00:36:41,920 --> 00:36:42,380 storyboard. 674 00:36:42,380 --> 00:36:46,590 Donc, je me suis simplement limiter à pas utiliser l'une des story-board, et un 675 00:36:46,590 --> 00:36:49,170 l'application ne sera pas vide me donner un storyboard. 676 00:36:49,170 --> 00:36:52,256 C'est juste pour éviter moi de tricher. 677 00:36:52,256 --> 00:36:54,428 Voyons. 678 00:36:54,428 --> 00:36:55,360 Attendez. 679 00:36:55,360 --> 00:36:55,960 Ai-je - 680 00:36:55,960 --> 00:36:56,448 Oui. 681 00:36:56,448 --> 00:36:57,698 OK. 682 00:36:57,698 --> 00:37:08,650 683 00:37:08,650 --> 00:37:09,180 >> Droite. 684 00:37:09,180 --> 00:37:16,790 Donc, ici, nous nous retrouvons avec rien d'autre que du code. 685 00:37:16,790 --> 00:37:19,460 Alors, permettez-moi de passer cette fenêtre un peu plus. 686 00:37:19,460 --> 00:37:22,020 687 00:37:22,020 --> 00:37:22,260 Droite. 688 00:37:22,260 --> 00:37:28,160 Comme vous pouvez le voir ici, les seuls fichiers qu'on nous donne sont AppDelegate.h et point 689 00:37:28,160 --> 00:37:30,500 m, et nous n'avons pas storyboard plus. 690 00:37:30,500 --> 00:37:39,580 >> Donc, si nous courons, nous allons encore accéder à l'écran blanc, Dieu merci. 691 00:37:39,580 --> 00:37:42,280 OK - écran blanc, mais rien d'autre. 692 00:37:42,280 --> 00:37:45,260 Et, ici, c'est le plus important. 693 00:37:45,260 --> 00:37:47,810 C'est là que l'action se passe. 694 00:37:47,810 --> 00:37:51,410 Dans les versions précédentes, il ya généralement pas de code ici, mais la 695 00:37:51,410 --> 00:37:55,600 storyboard fournit essentiellement le code pour cette partie. 696 00:37:55,600 --> 00:37:57,470 Je ne vais pas entrer dans les détails sur la façon. 697 00:37:57,470 --> 00:38:02,890 >> Et ce que nous voulons faire maintenant, c'est que nous voulons d'aller ici, et ce petit espace 698 00:38:02,890 --> 00:38:05,050 commence la création de notre application à nouveau. 699 00:38:05,050 --> 00:38:06,092 Donc - 700 00:38:06,092 --> 00:38:06,318 oui? 701 00:38:06,318 --> 00:38:07,450 >> PUBLIC: Zoom? 702 00:38:07,450 --> 00:38:07,770 >> RHED SHI: Zoom. 703 00:38:07,770 --> 00:38:09,020 Oui, bien sûr. 704 00:38:09,020 --> 00:38:13,940 705 00:38:13,940 --> 00:38:14,520 OK. 706 00:38:14,520 --> 00:38:17,380 Je vais taper, donc cela ne devrait pas trop d'importance. 707 00:38:17,380 --> 00:38:17,940 OK. 708 00:38:17,940 --> 00:38:22,720 >> Donc, d'abord, n'oubliez pas que nous voulions créer un contrôleur de la navigation, à droite? 709 00:38:22,720 --> 00:38:27,090 Et aussi, comme vous pouvez le voir ici, Xcode fait un excellent travail de 710 00:38:27,090 --> 00:38:28,070 auto-remplissage. 711 00:38:28,070 --> 00:38:31,650 Donc, comme vous le verrez, les noms de tout sont beaucoup plus longtemps que 712 00:38:31,650 --> 00:38:33,910 d'habitude, mais Xcode remplit pour vous. 713 00:38:33,910 --> 00:38:35,710 Donc, je ne peux appuyer sur Entrée. 714 00:38:35,710 --> 00:38:40,180 >> Donc, je veux créer une navigation de l'interface utilisateur pointeur de contrôleur, et je peux l'appeler 715 00:38:40,180 --> 00:38:41,430 navigationController. 716 00:38:41,430 --> 00:38:43,040 717 00:38:43,040 --> 00:38:44,470 Maintenant, ce que je fais maintenant? 718 00:38:44,470 --> 00:38:49,510 Après ce signe égal, je dois, d'abord, créer à l'intérieur de la mémoire. 719 00:38:49,510 --> 00:38:53,790 Donc, je vais faire NavigationController alloc - 720 00:38:53,790 --> 00:38:56,640 donc, ce qui est similaire à malloc, que vous les gars utilisés dans C - 721 00:38:56,640 --> 00:38:58,400 et puis, je vais à init il. 722 00:38:58,400 --> 00:39:03,670 >> Donc, il est vraiment important que tout objet que vous créez, vous voulez 723 00:39:03,670 --> 00:39:04,940 alloc et init il. 724 00:39:04,940 --> 00:39:08,600 Cela va créer et instantialize à l'intérieur de la mémoire, et 725 00:39:08,600 --> 00:39:10,480 maintenant vous pouvez l'utiliser. 726 00:39:10,480 --> 00:39:10,780 Tout va bien? 727 00:39:10,780 --> 00:39:14,360 Si vous ne le faites pas, votre objet ne pas exister, et vous rencontrerez un tas 728 00:39:14,360 --> 00:39:17,290 de problèmes. 729 00:39:17,290 --> 00:39:20,250 >> Et puis, je veux créer un contrôleur de vue, non? 730 00:39:20,250 --> 00:39:25,580 Donc, je veux créer un UIViewController étoiles - 731 00:39:25,580 --> 00:39:29,620 oui, tout est un pointeur dans Objective-C, et je vais faire 732 00:39:29,620 --> 00:39:31,600 quelque chose de similaire, ici - 733 00:39:31,600 --> 00:39:32,850 alloc, init. 734 00:39:32,850 --> 00:39:38,680 735 00:39:38,680 --> 00:39:40,150 OK. 736 00:39:40,150 --> 00:39:43,450 >> Et puis ce que je vais faire, je suis aller - si, rappelez-vous quand nous avons fait 737 00:39:43,450 --> 00:39:45,360 l'incorporer dans le contrôleur de navigation? 738 00:39:45,360 --> 00:39:46,920 C'est ainsi que vous le faites dans le code. 739 00:39:46,920 --> 00:39:54,550 Vous allez faire navigationController 740 00:39:54,550 --> 00:39:55,780 pushViewController - 741 00:39:55,780 --> 00:39:57,636 >> PUBLIC: [inaudible]. 742 00:39:57,636 --> 00:39:59,030 Cela se produira pour nous, ou -? 743 00:39:59,030 --> 00:40:00,080 >> RHED SHI: Oh, oui. 744 00:40:00,080 --> 00:40:00,550 Non. 745 00:40:00,550 --> 00:40:02,740 Il m'aime mieux. 746 00:40:02,740 --> 00:40:04,670 Non, ça va marcher pour vous aussi. 747 00:40:04,670 --> 00:40:06,700 Donc, ce sont toutes les méthodes. 748 00:40:06,700 --> 00:40:10,400 Donc pushViewController est un procédé, et aussi, plus particulièrement, il s'agit d'un 749 00:40:10,400 --> 00:40:13,590 méthode d'instance de l'interface utilisateur dispositif de commande de navigation. 750 00:40:13,590 --> 00:40:20,030 Parce que j'ai dû créer ma navigation de l'interface utilisateur étoiles de contrôleur, puis je 751 00:40:20,030 --> 00:40:24,510 peut appeler cette pushViewController sur mon instance spécifique d'une navigation de l'interface utilisateur 752 00:40:24,510 --> 00:40:25,010 contrôleur. 753 00:40:25,010 --> 00:40:29,490 >> PUBLIC: Devons-nous faire exactement mot, ou ça existe déjà pour cela? 754 00:40:29,490 --> 00:40:31,380 >> RHED SHI: Oui, parce que c'est une méthode. 755 00:40:31,380 --> 00:40:32,200 C'est comme une fonction. 756 00:40:32,200 --> 00:40:33,330 C'est comme printf. 757 00:40:33,330 --> 00:40:34,390 C'est comme scanf. 758 00:40:34,390 --> 00:40:36,250 C'est comme strcompare. 759 00:40:36,250 --> 00:40:40,310 Sauf qu'il sait ce que vous voudrez peut-être taper, et notez qu'il y aura toujours 760 00:40:40,310 --> 00:40:42,740 venir avec des choses qui sont légalement autorisé pour vous. 761 00:40:42,740 --> 00:40:47,620 Donc, si rien ne se passe ici, alors quelque chose ne va pas. 762 00:40:47,620 --> 00:40:50,550 >> Donc, pushViewController. 763 00:40:50,550 --> 00:40:52,580 Donc, maintenant, je veux pousser mon nouvellement créé 764 00:40:52,580 --> 00:40:56,850 UIViewController, puis, animation - 765 00:40:56,850 --> 00:40:57,470 peut-être pas. 766 00:40:57,470 --> 00:41:00,110 Parce que cela va être le premier contrôleur de vue. 767 00:41:00,110 --> 00:41:03,210 Je veux dire, même si je ne fais animée, il ne sera probablement pas se montrer, parce 768 00:41:03,210 --> 00:41:05,050 c'est le premier écran. 769 00:41:05,050 --> 00:41:06,540 >> Et n'oubliez pas les parenthèses. 770 00:41:06,540 --> 00:41:08,850 Alors, rappelez-vous comment nous avons utilisé les supports? 771 00:41:08,850 --> 00:41:11,870 Et à l'intérieur des parenthèses, le objet fait appel à une méthode - 772 00:41:11,870 --> 00:41:15,910 si notre objet est la navigation contrôleur, et le procédé est un poussoir 773 00:41:15,910 --> 00:41:17,210 contrôleur de vue animé. 774 00:41:17,210 --> 00:41:21,920 Et voir comment il prend deux arguments, et ils sont séparés par l', en quelque sorte, 775 00:41:21,920 --> 00:41:24,390 mots, et un colon. 776 00:41:24,390 --> 00:41:28,300 Donc, Objective-C tente de rendre agréable et facile pour vous de lire à haute voix - 777 00:41:28,300 --> 00:41:33,020 votre code - et avoir demi, en quelque sorte, faire sens. 778 00:41:33,020 --> 00:41:37,150 >> Cependant, que cela soit fait n'est pas suffisant. 779 00:41:37,150 --> 00:41:39,780 Permettez-moi de zoom arrière maintenant. 780 00:41:39,780 --> 00:41:44,210 Faire tout cela ne suffit pas à obtenons ce que nous avons précédemment. 781 00:41:44,210 --> 00:41:48,580 Donc, ici, vous remarquerez qu'il ya fait ne va pas être une sorte de 782 00:41:48,580 --> 00:41:50,190 bar, ici, non? 783 00:41:50,190 --> 00:41:54,680 Il n'y a pas la barre de navigation, ce qui signifie que nous n'avons pas encore obtenu il. 784 00:41:54,680 --> 00:41:58,850 >> Et nous pouvons tester que sur, également, par, peut-être, en changeant l'arrière-plan de 785 00:41:58,850 --> 00:42:00,460 ViewController, non? 786 00:42:00,460 --> 00:42:01,710 ViewController.background-- 787 00:42:01,710 --> 00:42:03,155 788 00:42:03,155 --> 00:42:03,640 ah. 789 00:42:03,640 --> 00:42:07,690 Alors, comment ViewController n'avait pas une couleur de fond, même si je 790 00:42:07,690 --> 00:42:08,780 voulu pour y accéder? 791 00:42:08,780 --> 00:42:14,080 Et c'est parce que ViewController est un récipient pour la vue. 792 00:42:14,080 --> 00:42:19,490 Ainsi, il possède une propriété de vue, qui a alors une couleur de fond. 793 00:42:19,490 --> 00:42:25,510 >> Et, je peux le mettre, en quelque sorte péniblement, en appelant la couleur 794 00:42:25,510 --> 00:42:28,130 sur l'objet UIColor. 795 00:42:28,130 --> 00:42:33,210 Alors, avis ici, redColor est une méthode. 796 00:42:33,210 --> 00:42:36,750 C'est une méthode de classe de UIColor. 797 00:42:36,750 --> 00:42:40,820 Parce que je n'ai pas eu à créer un exemple réel d'un UIColor afin 798 00:42:40,820 --> 00:42:42,020 pour appeler la méthode sur elle. 799 00:42:42,020 --> 00:42:45,050 Je viens, tout simplement, l'appelais sur le nom de type analogue. 800 00:42:45,050 --> 00:42:49,620 J'ai, comme, appelé sur int, int avait si, analogues, une méthode à elle, par exemple. 801 00:42:49,620 --> 00:42:52,380 >> Et donc, si nous courons ce code, nous allons notez que le fond est 802 00:42:52,380 --> 00:42:53,540 effectivement pas rouge. 803 00:42:53,540 --> 00:42:54,790 Il est encore blanc. 804 00:42:54,790 --> 00:42:57,720 805 00:42:57,720 --> 00:43:04,550 Et comment nous pouvons contourner c'est-à- remarquez comment il ya le self.fenetre. 806 00:43:04,550 --> 00:43:08,260 C'est, comme, le récipient final pour votre application. 807 00:43:08,260 --> 00:43:11,630 C'est la chose ultime qui contient tout sur l'écran, pour une 808 00:43:11,630 --> 00:43:13,650 application iPhone ou iPad. 809 00:43:13,650 --> 00:43:20,970 >> Et, idéalement, self.fenetre a cette propriété appelée 810 00:43:20,970 --> 00:43:22,650 rootViewController. 811 00:43:22,650 --> 00:43:26,480 Et que va être le pointeur à le premier contrôleur de vue de l'intérieur 812 00:43:26,480 --> 00:43:27,270 de votre application. 813 00:43:27,270 --> 00:43:32,000 Donc, ce que nous voulons faire ici, maintenant, c'est pour définir ce que la hauteur de notre navigation 814 00:43:32,000 --> 00:43:32,710 contrôleur. 815 00:43:32,710 --> 00:43:33,760 Droite? 816 00:43:33,760 --> 00:43:37,490 Parce que, techniquement, la navigation contrôleur est notre première vue 817 00:43:37,490 --> 00:43:38,770 contrôleur. 818 00:43:38,770 --> 00:43:46,160 Il garde la trace d'un éventail d'autres avis contrôleurs, et nous avons poussé cette 819 00:43:46,160 --> 00:43:49,810 contrôleur de vue dans ce tableau dans le dispositif de commande de navigation. 820 00:43:49,810 --> 00:43:52,640 >> Donc, vous ne voulez pas le faire. 821 00:43:52,640 --> 00:43:54,225 Ce ne serait pas vraiment vous aider. 822 00:43:54,225 --> 00:43:58,040 Vous voulez faire cela, si vous voulez faire un contrôleur de navigation, dont la plupart 823 00:43:58,040 --> 00:44:01,100 vous n'aurez probablement parce que vous voudrez pour, en quelque sorte, avoir une sorte de, 824 00:44:01,100 --> 00:44:04,840 comme, menu pour revenir à ou une Page d'accueil pour revenir à, plutôt que d'un 825 00:44:04,840 --> 00:44:05,470 écran vide. 826 00:44:05,470 --> 00:44:05,920 Oui? 827 00:44:05,920 --> 00:44:11,460 >> PUBLIC: Est-il mal à l'aise pour effectuer un zoom avant sur la - 828 00:44:11,460 --> 00:44:12,710 >> RHED SHI: Ouais. 829 00:44:12,710 --> 00:44:15,310 830 00:44:15,310 --> 00:44:15,720 Donc, oui. 831 00:44:15,720 --> 00:44:22,370 Il s'agit du code, et maintenant Testons-le. 832 00:44:22,370 --> 00:44:27,920 >> Donc, là, nous allons. 833 00:44:27,920 --> 00:44:29,170 Magie. 834 00:44:29,170 --> 00:44:30,960 835 00:44:30,960 --> 00:44:32,690 Donc, OK. 836 00:44:32,690 --> 00:44:34,420 Merci. 837 00:44:34,420 --> 00:44:35,000 OK. 838 00:44:35,000 --> 00:44:38,690 Alors maintenant, ce que nous voulons faire, c'est - si, nous sommes en quelque sorte limités, ici, non? 839 00:44:38,690 --> 00:44:45,130 Nous pourrions potentiellement tout écrire à l'intérieur de cette seule fonction. 840 00:44:45,130 --> 00:44:48,470 Mais, ce n'est pas la façon dont le développement iOS travaille habituellement. 841 00:44:48,470 --> 00:44:53,030 >> Donc, ce que nous allons faire, c'est que nous sommes va créer de nouveaux fichiers. 842 00:44:53,030 --> 00:44:57,110 Mais, plus précisément, nous allons créer une autre classe Objective-C, ou 843 00:44:57,110 --> 00:44:58,010 un autre objet - 844 00:44:58,010 --> 00:45:00,700 classe et les objets sont interchangeables ici. 845 00:45:00,700 --> 00:45:06,460 Et, voici comment j'ai pu, éventuellement, créer une autre classe de contrôleurs U. 846 00:45:06,460 --> 00:45:12,030 >> Donc, c'est une sous-classe, comme vous le verrez, ici, c'est une sous-classe de la 847 00:45:12,030 --> 00:45:15,910 vue de l'interface utilisateur de commande, mais je ne peux appeler un autre nom ici. 848 00:45:15,910 --> 00:45:19,400 Je pourrais appeler ce CS50, que je pourrais appeler ce contrôleur de vue, je pourrais appeler 849 00:45:19,400 --> 00:45:21,640 ce contrôleur de vue de bla - 850 00:45:21,640 --> 00:45:22,400 ce que je veux. 851 00:45:22,400 --> 00:45:24,140 C'est juste le nom de la classe. 852 00:45:24,140 --> 00:45:27,020 Cependant, il va être important parce que, essentiellement, ce que je fais 853 00:45:27,020 --> 00:45:29,720 ici, c'est que je crée un autre nom de classe. 854 00:45:29,720 --> 00:45:34,140 Donc, ça va être, comme certains sorte de type ou un objet. 855 00:45:34,140 --> 00:45:35,910 Ainsi, il devrait être un peu générique. 856 00:45:35,910 --> 00:45:37,225 Il ne va pas être très précis. 857 00:45:37,225 --> 00:45:40,410 858 00:45:40,410 --> 00:45:44,480 >> Et aussi, je tiens à signaler ces deux options. 859 00:45:44,480 --> 00:45:48,430 Parce que nous faisons tout à l'intérieur de code, il est parfois beaucoup plus facile 860 00:45:48,430 --> 00:45:53,540 à amener dans un fichier d'interface, de telle sorte que Je peux littéralement glisser-déposer, comme 861 00:45:53,540 --> 00:45:54,960 nous l'avons fait plus tôt avec storyboard - 862 00:45:54,960 --> 00:45:57,810 vous le savez, une étiquette ou un bouton, ou tout autre chose. 863 00:45:57,810 --> 00:46:01,950 Et donc, xibs sont des fichiers qui vous permettent de faites cela, et vous devez le raccorder 864 00:46:01,950 --> 00:46:04,310 à ce fichier de contrôleur de vue. 865 00:46:04,310 --> 00:46:06,540 >> Donc, je vais délibérément pas vérifier. 866 00:46:06,540 --> 00:46:12,510 Habituellement, je voudrais vérifier cela, et si je ne l'ai fait pour l'iPhone ou l'iPad, je 867 00:46:12,510 --> 00:46:16,340 serait vérifier et tout simplement un pour, vous le savez, l'iPhone ou l'iPad. 868 00:46:16,340 --> 00:46:19,750 Mais depuis que je fais universel, je vais pour créer deux de ces plus tard. 869 00:46:19,750 --> 00:46:22,220 Donc, je vais délibérément décochez cette. 870 00:46:22,220 --> 00:46:23,940 >> C'est aussi très important. 871 00:46:23,940 --> 00:46:27,490 Un grand nombre de fois, j'ai eu des bugs où cela n'a pas été vérifié. 872 00:46:27,490 --> 00:46:31,930 Et, évidemment, ce fichier n'est pas, en quelque sorte, comme, inclus ou importés 873 00:46:31,930 --> 00:46:33,740 l'intérieur de ce dossier test. 874 00:46:33,740 --> 00:46:38,180 Et donc, mon code n'a absolument aucune idée de l'existence de ce fichier, et 875 00:46:38,180 --> 00:46:41,080 qui provoque beaucoup de douleur et des heures de débogage. 876 00:46:41,080 --> 00:46:44,360 Mais, assurez-vous juste cette case est cochée si que, vous le savez, l'objectif de cette 877 00:46:44,360 --> 00:46:47,510 fichier est pour cette application. 878 00:46:47,510 --> 00:46:48,310 >> OK. 879 00:46:48,310 --> 00:46:51,680 Donc, maintenant, nous avons créé deux nouveaux fichiers. 880 00:46:51,680 --> 00:46:54,050 Et ces fichiers semblent très vide. 881 00:46:54,050 --> 00:46:59,550 Et, effectivement, nous allons continuer aussi par la création des fichiers de XIB. 882 00:46:59,550 --> 00:47:03,690 Donc, déjà, j'étais dans la Cocoa Touch déroulante. 883 00:47:03,690 --> 00:47:06,880 Maintenant, je vais aller dans l'Utilisateur Interface tactile, et comme vous pouvez le voir, je 884 00:47:06,880 --> 00:47:08,120 peut créer un storyboard. 885 00:47:08,120 --> 00:47:11,710 >> Donc, même j'ai commencé avec un vide demande, je peux encore utiliser un 886 00:47:11,710 --> 00:47:12,340 storyboard. 887 00:47:12,340 --> 00:47:15,480 Bien, ça devient compliqué en termes de la façon dont vous voulez vous connecter 888 00:47:15,480 --> 00:47:16,820 que de votre code. 889 00:47:16,820 --> 00:47:18,230 Donc, je ne vais pas y aller. 890 00:47:18,230 --> 00:47:22,160 >> Mais, ce que nous voulons faire est maintenant créer une vue. 891 00:47:22,160 --> 00:47:25,720 Et vous pouvez choisir pour un iPhone ou un iPad. 892 00:47:25,720 --> 00:47:30,180 Et généralement, pour désigner l' différence - si vous faites une 893 00:47:30,180 --> 00:47:31,950 application universelle - 894 00:47:31,950 --> 00:47:35,980 soit vous mettez un iPhone de soulignement, ou vous pouvez faire un Twiddly. 895 00:47:35,980 --> 00:47:36,980 Il n'a pas vraiment d'importance. 896 00:47:36,980 --> 00:47:40,890 C'est tout simplement pour vous faire la différence qui est vue pour ce dispositif. 897 00:47:40,890 --> 00:47:43,470 898 00:47:43,470 --> 00:47:44,430 >> Et si, maintenant regarder. 899 00:47:44,430 --> 00:47:47,550 J'ai un écran que je peux travailler avec. 900 00:47:47,550 --> 00:47:53,530 Et si, par exemple, je peux mettre une étiquette ici, vous le savez, et je peux aussi mettre 901 00:47:53,530 --> 00:47:54,820 un autre bouton ici. 902 00:47:54,820 --> 00:47:58,730 Je ne vais pas changer les valeurs ici. 903 00:47:58,730 --> 00:48:09,050 >> Mais, ce qui est important ici est que le propriétaire du fichier - 904 00:48:09,050 --> 00:48:13,660 oui, je suis à l'intérieur de l'iPhone vue, le fichier iPhone xib. 905 00:48:13,660 --> 00:48:18,050 Et dans cette zone de navigation ou menu déroulant, je veux aller à l' 906 00:48:18,050 --> 00:48:19,090 Le propriétaire du fichier. 907 00:48:19,090 --> 00:48:22,630 Et c'est vraiment l' étape importante ici. 908 00:48:22,630 --> 00:48:27,780 Je veux faire le point de vue de classe contrôleur, de sorte que ce fichier est XIB 909 00:48:27,780 --> 00:48:30,030 va être associée à mon contrôleur de vue. 910 00:48:30,030 --> 00:48:33,590 911 00:48:33,590 --> 00:48:39,360 Et tout ce que je fais à l'intérieur de mon point de vue contrôleur est programme 912 00:48:39,360 --> 00:48:42,800 se reflétera sur ici. 913 00:48:42,800 --> 00:48:46,270 >> Donc, toutefois, remarquer que - 914 00:48:46,270 --> 00:48:55,995 effectivement, nous allons faire ce point de vue fond bleu, par exemple. 915 00:48:55,995 --> 00:49:00,280 916 00:49:00,280 --> 00:49:01,530 Ou vert. 917 00:49:01,530 --> 00:49:03,870 918 00:49:03,870 --> 00:49:07,950 Et puis, si vous remarquerez, de retour dans ce code, c'est là que nous sommes arrivés à notre 919 00:49:07,950 --> 00:49:09,200 dispositif de commande de navigation. 920 00:49:09,200 --> 00:49:12,650 921 00:49:12,650 --> 00:49:18,310 >> Même si nous avons fait cette étape, il est encore va être rouge, pas vert. 922 00:49:18,310 --> 00:49:20,350 Et il ya une raison. 923 00:49:20,350 --> 00:49:28,090 C'est parce que, quand nous inited notre contrôleur de vue, ici - 924 00:49:28,090 --> 00:49:30,010 désolé, c'est un peu fou - 925 00:49:30,010 --> 00:49:34,520 quand nous inited notre contrôleur de vue ici, il nous inited du type général 926 00:49:34,520 --> 00:49:35,990 UIViewController. 927 00:49:35,990 --> 00:49:36,560 OK? 928 00:49:36,560 --> 00:49:40,560 Donc, nous n'avons même pas fait avec cette classe. 929 00:49:40,560 --> 00:49:42,030 >> Donc n'oubliez pas, c'est comme une classe maintenant. 930 00:49:42,030 --> 00:49:47,160 Il peut être considéré comme un type, juste comme UIViewController est un type. 931 00:49:47,160 --> 00:49:51,080 Et pour l'utiliser, ce qui nous devons faire est de l'importer - 932 00:49:51,080 --> 00:49:52,520 ViewController d'importation - 933 00:49:52,520 --> 00:49:55,750 et, comme vous pouvez le voir, il AutoFills pour moi. 934 00:49:55,750 --> 00:49:56,570 Donc, ViewController - 935 00:49:56,570 --> 00:50:02,070 et maintenant, ici, je peux changer ce UIViewController à ViewController. 936 00:50:02,070 --> 00:50:05,050 Et maintenant, voici, je peux changer ce à ViewController. 937 00:50:05,050 --> 00:50:07,790 938 00:50:07,790 --> 00:50:09,250 >> Lançons ce nouveau. 939 00:50:09,250 --> 00:50:16,970 940 00:50:16,970 --> 00:50:19,690 Il est encore rouge. 941 00:50:19,690 --> 00:50:23,370 Et la raison pour laquelle il est encore rouge c'est parce que - 942 00:50:23,370 --> 00:50:26,230 woah, ce qui s'est passé? 943 00:50:26,230 --> 00:50:31,500 Nous voulions associer ce XIB déposer auprès du contrôleur de vue. 944 00:50:31,500 --> 00:50:37,540 Toutefois, afin de réellement faire que, nous avons besoin d'aller dans ce. 945 00:50:37,540 --> 00:50:42,980 Et quand nous faisons l'init, nous voulons faire initWithNibName, et alors nous voulons 946 00:50:42,980 --> 00:50:48,910 faire la chaîne à View_iPhone, par exemple. 947 00:50:48,910 --> 00:50:51,700 Vous pouvez ignorer le paquet ici. 948 00:50:51,700 --> 00:50:54,965 >> Et cela va permettre nous, en fait - 949 00:50:54,965 --> 00:51:00,620 950 00:51:00,620 --> 00:51:02,160 uh oh, il ya un problème. 951 00:51:02,160 --> 00:51:09,300 952 00:51:09,300 --> 00:51:09,980 Droite. 953 00:51:09,980 --> 00:51:17,670 >> Et oui, il ya un problème parce que, dans notre dossier vue XIB, nous avons une étiquette et 954 00:51:17,670 --> 00:51:18,720 nous avons un bouton. 955 00:51:18,720 --> 00:51:23,660 Cependant, même si nous avons connecté les deux, il n'y a rien à l'intérieur de 956 00:51:23,660 --> 00:51:27,440 ViewController.h ou ViewController.m qui reflètent les 957 00:51:27,440 --> 00:51:29,160 boutons ou les labels. 958 00:51:29,160 --> 00:51:32,425 Donc, nous avons besoin d'écrire ceux que propriétés du contrôleur de vue. 959 00:51:32,425 --> 00:51:35,290 960 00:51:35,290 --> 00:51:39,490 >> Donc, c'est la façon dont vous déclarez une propriété. 961 00:51:39,490 --> 00:51:43,422 Il faut en, habituellement, ces deux options. 962 00:51:43,422 --> 00:51:48,690 Aux fins de nous et de ce séminaire, Je dirais que, en général, 963 00:51:48,690 --> 00:51:52,250 la plupart des propriétés sont nonatomic et à conserver. 964 00:51:52,250 --> 00:51:55,420 Vous pouvez lire par Google la recherche, vous le savez, la différence entre 965 00:51:55,420 --> 00:51:58,620 nonatomic et conserver sur vous savez, Google ou quelque chose. 966 00:51:58,620 --> 00:52:01,090 Et je vais vous emmener, comme, Stack Débordement, où les gens auront 967 00:52:01,090 --> 00:52:03,605 réponses pour les différences entre ceux-ci. 968 00:52:03,605 --> 00:52:07,000 Mais pour l'instant, c'est ce que nous vouloir se préoccuper. 969 00:52:07,000 --> 00:52:12,790 >> Et nous voulons faire une étiquette de l'interface utilisateur, étoile, et nous pouvons l'appeler ce que nous voulons. 970 00:52:12,790 --> 00:52:15,710 Nous pouvons appeler cela, vous le savez, l'étiquette. 971 00:52:15,710 --> 00:52:18,270 972 00:52:18,270 --> 00:52:20,110 Et, nous allons créer une autre une pour le bouton. 973 00:52:20,110 --> 00:52:24,380 974 00:52:24,380 --> 00:52:29,910 Et n'oubliez pas d'inclure l'astérisque, parce que nous traitons avec des pointeurs 975 00:52:29,910 --> 00:52:36,740 un peu partout à l'intérieur de l'Objective-C. 976 00:52:36,740 --> 00:52:42,110 >> Cependant, cela toujours pas à résoudre le problème, comme vous pouvez le voir ici. 977 00:52:42,110 --> 00:52:50,540 Et la raison en est que, chaque fois que nous voulez connecter un label de fichier XIB ou un 978 00:52:50,540 --> 00:52:55,690 bouton pour le programme, ou l'en-tête et le fichier de mise en œuvre, nous voulons 979 00:52:55,690 --> 00:52:58,255 ajouter ce morceau de code - 980 00:52:58,255 --> 00:53:00,610 sortie. 981 00:53:00,610 --> 00:53:03,600 Notez qu'il s'agit d'un mot-clé. 982 00:53:03,600 --> 00:53:07,970 >> Et, dès que j'ai fini de taper que rupture, il devrait avoir ces 983 00:53:07,970 --> 00:53:09,100 deux cercles, ici. 984 00:53:09,100 --> 00:53:11,200 Habituellement, ils ne sont pas remplis po 985 00:53:11,200 --> 00:53:12,920 Je ne sais pas pourquoi ils sont. 986 00:53:12,920 --> 00:53:21,370 Mais généralement, vous devrez manuellement connectez-les en allant de ce côté de 987 00:53:21,370 --> 00:53:23,530 le secteur des services publics. 988 00:53:23,530 --> 00:53:28,430 >> Et si, en ce moment, j'ai mon label choisi, et je veux faire glisser cette nouvelle 989 00:53:28,430 --> 00:53:33,910 référence prise au propriétaire de mon dossier, puis cliquez sur l'étiquette. 990 00:53:33,910 --> 00:53:40,230 Alors maintenant, enfin, cette étiquette est relié à cette étiquette. 991 00:53:40,230 --> 00:53:44,950 Et cette étiquette est ce que nous allons utiliser programme pour changer son 992 00:53:44,950 --> 00:53:49,250 texte, sa police, son arrière-plan couleur, etc. 993 00:53:49,250 --> 00:53:52,430 >> Alors, pourquoi ne pas le même pour le bouton? 994 00:53:52,430 --> 00:53:54,770 Et comme vous le verrez, pour le bouton, c'est un peu plus compliqué. 995 00:53:54,770 --> 00:53:59,060 Parce que, je veux dire, vous êtes censé appuyez sur un bouton, il a beaucoup 996 00:53:59,060 --> 00:54:02,950 d'options pour la façon dont les utilisateurs peut appuyer sur un bouton. 997 00:54:02,950 --> 00:54:06,570 Et puis, nous verrons plus tard que nous pouvons nous connecter à notre présent 998 00:54:06,570 --> 00:54:09,140 code pour le faire fonctionner. 999 00:54:09,140 --> 00:54:12,770 >> Donc, pour l'instant, nous voulons connecter au bouton réelle 1000 00:54:12,770 --> 00:54:13,570 à l'intérieur de notre code. 1001 00:54:13,570 --> 00:54:19,640 Donc, nous allons à la nouvelle sortie de référencement, puis faire le bouton. 1002 00:54:19,640 --> 00:54:22,068 Maintenant, lançons ce nouveau. 1003 00:54:22,068 --> 00:54:23,040 Uh oh. 1004 00:54:23,040 --> 00:54:23,890 OK. 1005 00:54:23,890 --> 00:54:25,140 Je ne sais pas ce qui se passe ici aujourd'hui. 1006 00:54:25,140 --> 00:54:48,450 1007 00:54:48,450 --> 00:54:49,700 Whoa. 1008 00:54:49,700 --> 00:54:57,380 1009 00:54:57,380 --> 00:54:58,960 Juste un instant, ici. 1010 00:54:58,960 --> 00:55:02,490 >> En fait, pourquoi ne pas prendre un regarder un autre exemple dans 1011 00:55:02,490 --> 00:55:05,800 pour gagner du temps. 1012 00:55:05,800 --> 00:55:06,200 OK. 1013 00:55:06,200 --> 00:55:10,610 Donc, voici le plus facilement préparés exemple pour ViewController. 1014 00:55:10,610 --> 00:55:13,230 1015 00:55:13,230 --> 00:55:17,110 Comme vous pouvez le voir ici, j'ai inclus les propriétés de la 1016 00:55:17,110 --> 00:55:18,460 étiquette et le bouton. 1017 00:55:18,460 --> 00:55:20,370 Et puis, ce morceau de code ici - 1018 00:55:20,370 --> 00:55:21,830 ce IBAction - 1019 00:55:21,830 --> 00:55:27,740 était une connexion à ce bouton ici. 1020 00:55:27,740 --> 00:55:33,940 Donc, comme vous pouvez le voir ici, Touch Up Inside est reliée au sélecteur 1021 00:55:33,940 --> 00:55:37,390 appelé bouton enfoncé. 1022 00:55:37,390 --> 00:55:41,700 >> Donc, nous pouvons passer par le mouvement nouveau, ici, en prenant Touch Up 1023 00:55:41,700 --> 00:55:48,750 L'intérieur et en le faisant glisser à Propriétaire de fichier, puis 1024 00:55:48,750 --> 00:55:51,570 Cliquez sur le bouton pressé. 1025 00:55:51,570 --> 00:55:52,820 Maintenant, nous allons exécuter notre code. 1026 00:55:52,820 --> 00:55:55,710 1027 00:55:55,710 --> 00:56:02,020 Alors maintenant, ce bouton fonctionne maintenant et nous mènera à la page suivante. 1028 00:56:02,020 --> 00:56:08,430 >> Et, en termes de notre contrôleur de vue, c'est le morceau de code qui a eu 1029 00:56:08,430 --> 00:56:10,000 soins de la touche pressée. 1030 00:56:10,000 --> 00:56:14,260 Et il est important de noter ici, que J'ai créé un autre type de vue 1031 00:56:14,260 --> 00:56:16,330 contrôleur appelé une table contrôleur de vue. 1032 00:56:16,330 --> 00:56:19,900 Alors, ce fut semblable à dos dans storyboard, quand j'ai traîné un des 1033 00:56:19,900 --> 00:56:23,450 ces contrôleurs de vue de table dans le story-board. 1034 00:56:23,450 --> 00:56:24,470 Je crée un autre 1035 00:56:24,470 --> 00:56:30,000 >> Pointeur vers le contrôleur de vue de table, alloc et init-ment, puis faire 1036 00:56:30,000 --> 00:56:34,490 contrôleur de navigation auto de points, pousser ViewController, cette nouvelle 1037 00:56:34,490 --> 00:56:35,350 viewController. 1038 00:56:35,350 --> 00:56:39,750 Et j'ai mis l'animation oui, parce que maintenant à l'intérieur de mon application, et je 1039 00:56:39,750 --> 00:56:45,670 veulent réellement voir l'animation va de la page d'accueil à la table 1040 00:56:45,670 --> 00:56:46,920 contrôleur de vue. 1041 00:56:46,920 --> 00:56:48,830 1042 00:56:48,830 --> 00:56:51,110 >> PUBLIC: Ne vous inquiétez encore sur la collecte des ordures? 1043 00:56:51,110 --> 00:56:51,840 >> RHED SHI: Qu'est-ce que c'est? 1044 00:56:51,840 --> 00:56:54,740 Non. 1045 00:56:54,740 --> 00:56:58,970 Donc, la question est, avez-vous de travailler avec la collecte des ordures? 1046 00:56:58,970 --> 00:57:03,470 Donc, Xcode 4 avait comme ARC, qui est comptage automatique de référence. 1047 00:57:03,470 --> 00:57:06,120 Et donc, lorsque vous commencez à une nouvelle projet, vous souhaitez vérifier que, parce 1048 00:57:06,120 --> 00:57:09,440 personne ne veut vraiment faire face à libérer de la mémoire et d'autres choses. 1049 00:57:09,440 --> 00:57:13,720 Mais je pense que dans Xcode 5, il n'est même pas cette option sur le nouveau projet. 1050 00:57:13,720 --> 00:57:16,750 Donc, automatiquement est-ce que pour vous. 1051 00:57:16,750 --> 00:57:16,920 Oui? 1052 00:57:16,920 --> 00:57:20,970 >> PUBLIC: Pouvez-vous exporter une PDF dans votre storyboard? 1053 00:57:20,970 --> 00:57:22,020 >> RHED SHI: Oui, certainement. 1054 00:57:22,020 --> 00:57:28,180 Donc, tous ces seront inclus dans code source, si vous les gars peut vérifier 1055 00:57:28,180 --> 00:57:30,730 le projet Xcode réelle pour elle. 1056 00:57:30,730 --> 00:57:31,105 Ouais? 1057 00:57:31,105 --> 00:57:35,944 >> PUBLIC: Mais, je veux dire, comme, je peux imprimer un PDF avec mon storyboard? 1058 00:57:35,944 --> 00:57:38,920 Si je veux simplement exporter le images à montrer que quelqu'un. 1059 00:57:38,920 --> 00:57:39,160 >> RHED SHI: Oh oui. 1060 00:57:39,160 --> 00:57:41,980 Je pense que, peut-être, vous pouvez simplement prendre une capture d'écran. 1061 00:57:41,980 --> 00:57:44,350 Ouais, et leur envoyer un écran tir ou quelque chose. 1062 00:57:44,350 --> 00:57:45,600 Ouais. 1063 00:57:45,600 --> 00:57:49,170 1064 00:57:49,170 --> 00:57:50,570 >> Donc, nous allons voir. 1065 00:57:50,570 --> 00:57:56,470 Dans l'intérêt du temps, je pense que c'est tout ce que je peux couvrir aujourd'hui. 1066 00:57:56,470 --> 00:57:59,600 Mais, je sais que c'est, en fait, juste à peine de toucher la surface de l'iOS 1067 00:57:59,600 --> 00:58:00,370 développement. 1068 00:58:00,370 --> 00:58:05,630 Alors, s'il vous plaît n'hésitez pas à me contacter si vous avez des questions sur iOS 1069 00:58:05,630 --> 00:58:07,000 développement. 1070 00:58:07,000 --> 00:58:12,840 Et, je l'espère, je serai en mesure de nettoyer une partie du code de la source 1071 00:58:12,840 --> 00:58:16,830 fichiers de code, de sorte que vous avez un certain vraiment beaux exemples de travailler avec. 1072 00:58:16,830 --> 00:58:21,020 >> Autre que cela, si vous les gars vont à la CS50 Hackathon, je peut ou 1073 00:58:21,020 --> 00:58:25,730 pas être là, et je peux aider avec un peu de développement iOS, aussi. 1074 00:58:25,730 --> 00:58:26,980 Alors, merci beaucoup, les gars. 1075 00:58:26,980 --> 00:58:31,168