1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> TIANYU LIU: Hey, comment est ça va tout le monde? 3 00:00:13,590 --> 00:00:20,250 Et ce est l'App iOS programmation du séminaire de c objectif. 4 00:00:20,250 --> 00:00:21,520 Et mon nom est Liu Tianyu. 5 00:00:21,520 --> 00:00:26,114 Je suis un junior Lowell en ce moment, concentrant en informatique. 6 00:00:26,114 --> 00:00:28,030 Donc, dans ce séminaire, je suis vais vous enseigner les gars 7 00:00:28,030 --> 00:00:30,770 un peu sur la façon de faire une application. 8 00:00:30,770 --> 00:00:33,030 Yay, se enthousiasmer pour elle. 9 00:00:33,030 --> 00:00:36,790 >> Donc, avant même de commencer la plongée dans le côté de programmation proprement dit, 10 00:00:36,790 --> 00:00:41,840 disons simplement très rapidement parler pourquoi devriez-vous construire une application iOS? 11 00:00:41,840 --> 00:00:43,940 Pourquoi iOS si impressionnant? 12 00:00:43,940 --> 00:00:47,250 Ainsi, le premier problème, la première chose qui est assez impressionnant pour nous, 13 00:00:47,250 --> 00:00:51,190 surtout comme CS50 étudiant, ce est que iOS 14 00:00:51,190 --> 00:00:55,860 utilise Objective C. Eh bien, il ya un nouveau langage appelé Swift, 15 00:00:55,860 --> 00:00:58,260 mais nous ne allons pas utiliser que dans ce séminaire. 16 00:00:58,260 --> 00:01:01,540 Si vous êtes intéressé à Swift, il est un séminaire indépendante à ce sujet. 17 00:01:01,540 --> 00:01:05,590 Mais Objective C est fondamentalement un sur-ensemble de C. Signification 18 00:01:05,590 --> 00:01:10,230 que tout ce que vous pouvez utilisez dans C être traduit en Objective C 19 00:01:10,230 --> 00:01:11,630 très facilement. 20 00:01:11,630 --> 00:01:15,730 >> Comme vous pouvez le voir plus tard, qu'en effet, il ya une syntaxe très basique, sont 21 00:01:15,730 --> 00:01:19,790 essentiellement exactement la même, C et Objective C. Donc, 22 00:01:19,790 --> 00:01:22,860 puisque vous avez pris CS50 jusqu'à ce jour, vous avez déjà 23 00:01:22,860 --> 00:01:26,500 savoir Objective C, au moins 40%. 24 00:01:26,500 --> 00:01:30,720 En outre, Apple a vraiment API robuste pour iOS. 25 00:01:30,720 --> 00:01:33,750 Il ya beaucoup de vraiment fou choses que vous pouvez faire avec elle. 26 00:01:33,750 --> 00:01:36,760 Dont l'un est quelqu'un effectivement créé une application iOS 27 00:01:36,760 --> 00:01:40,600 pour les voitures de contrôle, qui est assez intéressant. 28 00:01:40,600 --> 00:01:42,610 Probablement un hélicoptère est plus excitant. 29 00:01:42,610 --> 00:01:47,020 Mais ce est la puissance l'API iOS peut être. 30 00:01:47,020 --> 00:01:49,340 >> Et comme vous pourriez avoir compris en ce moment, 31 00:01:49,340 --> 00:01:53,000 le débordement de pile est probablement l'un des plus importantes ressources en ligne 32 00:01:53,000 --> 00:01:54,250 disponibles pour vous. 33 00:01:54,250 --> 00:01:58,090 Et de bonnes nouvelles, pour chaque seul problème vous pouvez éventuellement 34 00:01:58,090 --> 00:02:01,840 penser à tout en construisant votre projet final en Objective C, 35 00:02:01,840 --> 00:02:05,910 il est probable une réponse de débordement de pile. 36 00:02:05,910 --> 00:02:07,420 Ce est tout simplement génial. 37 00:02:07,420 --> 00:02:12,780 En plus de cela, iOS est vraiment une plate-forme 38 00:02:12,780 --> 00:02:16,260 où vous pourrez rejoindre un grand public avec peu d'effort. 39 00:02:16,260 --> 00:02:20,170 Ce est pas comme Android, où tout est très fragmenté. 40 00:02:20,170 --> 00:02:22,540 >> Tout iOS est unifié. 41 00:02:22,540 --> 00:02:25,920 Et tant que vous créez une application pour iPhone, 42 00:02:25,920 --> 00:02:31,260 vous pouvez très facilement port à l'iPad, iPad mini ou différentes tailles iPhone. 43 00:02:31,260 --> 00:02:33,050 Ce sont tous vraiment pratique. 44 00:02:33,050 --> 00:02:36,430 Et ce est juste vraiment bon pour impressionner vos amis. 45 00:02:36,430 --> 00:02:38,920 Vous pouvez simplement tenir un iPhone et dire à votre ami Hey, 46 00:02:38,920 --> 00:02:40,250 ce est l'application que je fais. 47 00:02:40,250 --> 00:02:43,860 Vous pouvez le faire pour ne importe quel applications de bureau, qui est agréable. 48 00:02:43,860 --> 00:02:48,870 >> Très bien, maintenant nous allons réellement obtenir dans la langue C. Objectif 49 00:02:48,870 --> 00:02:52,910 Alors pourquoi ne pas commencer avec une syntaxe très basique. 50 00:02:52,910 --> 00:02:57,410 Comme je l'ai mentionné avant Objectif C Ce est fondamentalement un sur-ensemble de C. 51 00:02:57,410 --> 00:03:01,860 Donc, beaucoup de syntaxe de base sont en fait exactement la même chose. 52 00:03:01,860 --> 00:03:06,150 Déclarer une variable et l'ajout de deux variables ensemble 53 00:03:06,150 --> 00:03:09,440 est exactement comme nous l'avons fait dans Mario. 54 00:03:09,440 --> 00:03:11,140 Rien de nouveau ici. 55 00:03:11,140 --> 00:03:17,370 >> De même, le locataire pour la boucle et la condition est également le même. 56 00:03:17,370 --> 00:03:22,370 Vous pouvez faire une boucle for comme vous ont fait dans un Mario [inaudible]. 57 00:03:22,370 --> 00:03:26,280 Et vous pouvez faire conditions tout comme ce que vous 58 00:03:26,280 --> 00:03:29,240 ont été faites dans votre p ensembles précédents. 59 00:03:29,240 --> 00:03:33,400 Cependant, Objective C C est pas complètement, 60 00:03:33,400 --> 00:03:36,640 et il est quelque chose qui est un peu bizarre à ce sujet. 61 00:03:36,640 --> 00:03:42,340 >> La première étant que lorsque vous êtes C faire la programmation, vous appelez généralement 62 00:03:42,340 --> 00:03:46,310 inclure, puis un nom de bibliothèque. 63 00:03:46,310 --> 00:03:49,860 Mais en Objective C vous appelez cette importation. 64 00:03:49,860 --> 00:03:53,100 Dire essentiellement la fonctionnalité, juste des noms différents. 65 00:03:53,100 --> 00:03:55,940 Et les cordes sont en fait un peu bizarre. 66 00:03:55,940 --> 00:03:58,250 Vous pouvez voir que le premier chose qui est un peu bizarre 67 00:03:58,250 --> 00:04:04,190 ce est que vous avez une assez weird-- sorry-- vous avez un NS assez bizarre 68 00:04:04,190 --> 00:04:04,960 signer ici. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Et la deuxième chose ce est un peu bizarre 71 00:04:09,160 --> 00:04:14,090 est que vous avez une arobase avant déclarant effectivement la chaîne. 72 00:04:14,090 --> 00:04:19,209 Alors le signe signifie essentiellement une chaîne qui ne est pas seulement une chaîne de caractères, 73 00:04:19,209 --> 00:04:20,880 il est en fait un objet. 74 00:04:20,880 --> 00:04:22,780 Nous allons expliquer plus tard il ne faut pas 75 00:04:22,780 --> 00:04:25,800 panique si vous ne avez pas comprendre ce que cela signifie. 76 00:04:25,800 --> 00:04:29,980 Et l'impression à la console est un peu différente parce que dans C nous appelons printf, 77 00:04:29,980 --> 00:04:33,350 mais en Objective C nous appelons [inaudible]. 78 00:04:33,350 --> 00:04:35,640 >> Vous demandez peut-être ce est que. 79 00:04:35,640 --> 00:04:38,070 Ce est essentiellement printf, juste une langue différente. 80 00:04:38,070 --> 00:04:41,370 Exactement le même usage, exactement les mêmes fonctionnalités. 81 00:04:41,370 --> 00:04:44,060 Eh bien il se avère que Objectif C fait 82 00:04:44,060 --> 00:04:50,040 a ns un préfixe dans presque tout, tous les types de données de base, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 La raison étant que ns représente réellement pour l'étape suivante, 85 00:04:56,340 --> 00:04:59,980 qui est une entreprise qui Steve Jobs a fondé, 86 00:04:59,980 --> 00:05:03,960 qui est une société où le langage Objective C est né. 87 00:05:03,960 --> 00:05:06,140 Donc, ce est essentiellement la tradition. 88 00:05:06,140 --> 00:05:09,010 Je sais que ce est un peu bizarre, mais ce est Apple. 89 00:05:09,010 --> 00:05:16,840 >> Donc, quelque chose qui est encore plus étrange que ce est une déclaration de fonction. 90 00:05:16,840 --> 00:05:22,600 Ce est très différent de ce que nous voir dans C, car ici il fait 91 00:05:22,600 --> 00:05:25,190 ne ressemble pas plus C. 92 00:05:25,190 --> 00:05:28,810 Ce que vous avez ici-- par le ainsi ce ne est pas une puce, 93 00:05:28,810 --> 00:05:30,690 ce est un signe moins. 94 00:05:30,690 --> 00:05:36,440 Vous avez un signe moins parenthèses vide, puis le nom de la fonction. 95 00:05:36,440 --> 00:05:38,450 Disons que si nous avoir Bonjour tout le monde, puis 96 00:05:38,450 --> 00:05:42,820 le type de retour serait nulle parce que nous revenons rien. 97 00:05:42,820 --> 00:05:44,680 >> Ce qui obtient vraiment bizarre ce est que lorsque vous êtes 98 00:05:44,680 --> 00:05:49,580 ayant plus d'un paramètre passant dans une même fonction que 99 00:05:49,580 --> 00:05:53,870 sera vraiment bizarre comme montré ici. 100 00:05:53,870 --> 00:05:58,230 Nous avons un nom de méthode, addInt appelé à [inaudible] 101 00:05:58,230 --> 00:06:00,370 et nous passons un paramètre. 102 00:06:00,370 --> 00:06:05,170 Mais après cela, nous avons plus nom de la méthode appel avec. 103 00:06:05,170 --> 00:06:08,500 Et après avec nous passons le second paramètre. 104 00:06:08,500 --> 00:06:11,940 Ce est en fait un peu bizarre, mais toutes ces fonctions déclarations 105 00:06:11,940 --> 00:06:14,770 suivre le même schéma que cela. 106 00:06:14,770 --> 00:06:17,450 >> Nous avons un signe moins pour commencer. 107 00:06:17,450 --> 00:06:21,550 Le signe moins pourrait être un signe plus parfois en fonction de ce genre de méthode 108 00:06:21,550 --> 00:06:22,340 est-il. 109 00:06:22,340 --> 00:06:25,000 La méthode est essentiellement un autre nom pour la fonction. 110 00:06:25,000 --> 00:06:26,760 Et nous allons expliquer que plus tard, lorsque 111 00:06:26,760 --> 00:06:30,580 nous parlons objet la programmation orientée. 112 00:06:30,580 --> 00:06:34,300 Vous devez d'abord spécifier le retour tapez parenthèses à l'intérieur, 113 00:06:34,300 --> 00:06:37,450 après quoi vient le nom de la méthode. 114 00:06:37,450 --> 00:06:40,310 Vous êtes de passage un paramètre. 115 00:06:40,310 --> 00:06:44,750 Et si vous avez plusieurs paramètres vous devez étendre le nom de la méthode 116 00:06:44,750 --> 00:06:46,770 et fondamentalement écrire quelque chose de plus ici. 117 00:06:46,770 --> 00:06:48,090 >> Il pourrait être quelque chose que vous voulez. 118 00:06:48,090 --> 00:06:50,140 Dans notre cas, ce est avec. 119 00:06:50,140 --> 00:06:56,160 Mais vous pourriez dire fin, ou ou ou abc bar complet, ce que vous voulez. 120 00:06:56,160 --> 00:06:59,500 Et puis après que vous êtes passant paramètre b. 121 00:06:59,500 --> 00:07:01,750 Ce est un vraiment bizarre convention, mais nous sommes 122 00:07:01,750 --> 00:07:05,800 va voir pourquoi Apple a voulu de le faire très rapidement. 123 00:07:05,800 --> 00:07:10,530 Alors, comment vous appelez la fonction? 124 00:07:10,530 --> 00:07:15,520 Appel d'une fonction dans l'objectif C est également différent de C. 125 00:07:15,520 --> 00:07:18,170 >> En fait, l'appel d'une fonction en Objective C 126 00:07:18,170 --> 00:07:21,030 est plus comme vous parlez à quelqu'un. 127 00:07:21,030 --> 00:07:27,030 Ici, nous avons auto, qui est appelé un objet. 128 00:07:27,030 --> 00:07:33,830 Vous êtes essentiellement dire la opposer auto-à-dire "Bonjour tout le monde!" 129 00:07:33,830 --> 00:07:36,830 Ce est comment appeler la fonction. 130 00:07:36,830 --> 00:07:41,690 Un objet et un nom de méthode combinée avec l'autre. 131 00:07:41,690 --> 00:07:49,600 Et ce est là que l'extension bizarre pour le nom de la méthode vient vraiment en jeu. 132 00:07:49,600 --> 00:07:52,150 >> Regardons le deuxième exemple. 133 00:07:52,150 --> 00:07:56,780 Nous venons de définir une méthode appelée addInt avec bla bla bla. 134 00:07:56,780 --> 00:08:00,066 Donc dans ce cas lorsque vous appelez que [spécifique? message?] ça va 135 00:08:00,066 --> 00:08:02,035 pour ressembler auto addInt: 10 avec: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Cela ressemble à l'anglais. 138 00:08:08,070 --> 00:08:11,980 Bien que la fonction déclaration de fonction est bizarre, 139 00:08:11,980 --> 00:08:15,600 le point de l'objectif de C modèle de déclaration de méthode, 140 00:08:15,600 --> 00:08:18,830 ce est que lorsque vous appelez la fonction ou méthode 141 00:08:18,830 --> 00:08:21,980 il sera sembler réelle anglais. 142 00:08:21,980 --> 00:08:25,270 Il est donc très intuitive une fois que vous obtenez en elle. 143 00:08:25,270 --> 00:08:28,740 >> Surtout dans ce cas, où vous pouvez essentiellement 144 00:08:28,740 --> 00:08:33,010 voir que le nom de la fonction est sorte de se documenter. 145 00:08:33,010 --> 00:08:35,390 Vous ne avez pas besoin plus d'explications pour voir 146 00:08:35,390 --> 00:08:42,770 ce qui se passe exactement, ce exactement un paramètre faisant. 147 00:08:42,770 --> 00:08:48,470 Au-delà de cela, nous allons parler un peu peu de programmation orientée objet. 148 00:08:48,470 --> 00:08:52,160 La programmation orientée objet est une programmation du fondamental 149 00:08:52,160 --> 00:08:57,110 ou des motifs techniques qui est utilisé par Objective C. Objective C 150 00:08:57,110 --> 00:09:03,110 est appelée Objective C, pas C, pour une très bonne raison. 151 00:09:03,110 --> 00:09:07,560 >> Donc, avant d'entrer dans Syntaxe Objective C, 152 00:09:07,560 --> 00:09:11,670 Disons vraiment regardez rapidement ce qui est exactement un objet. 153 00:09:11,670 --> 00:09:15,480 Nous avons probablement fait quelque chose comme objet avant, qui 154 00:09:15,480 --> 00:09:19,780 est appelé le struct lorsque vous êtes la mise en œuvre d'un arbre ou une liste chaînée 155 00:09:19,780 --> 00:09:25,730 ou [? essayer. ?] Donc, ce est fondamentalement comme une structure, 156 00:09:25,730 --> 00:09:28,560 mais il est beaucoup plus puissant que cela. 157 00:09:28,560 --> 00:09:33,150 Un objet a des méthodes et propriétés. 158 00:09:33,150 --> 00:09:35,310 Les méthodes sont essentiellement des fonctions. 159 00:09:35,310 --> 00:09:39,480 Fondamentalement fonctions qu'un spécifique à un certain objet. 160 00:09:39,480 --> 00:09:45,440 >> Et les propriétés sont essentiellement les champ vous indiquez dans la structure. 161 00:09:45,440 --> 00:09:48,500 Donc, pour chaque objet nous avons une propriété 162 00:09:48,500 --> 00:09:53,160 qui a des variables qui sont spécifiques à l'objet. 163 00:09:53,160 --> 00:09:57,170 Et nous avons quelques fonctions sont également spécifiques à l'objet. 164 00:09:57,170 --> 00:10:01,180 Et les fonctions sont appelées méthodes et les variables sont appelés propriétés. 165 00:10:01,180 --> 00:10:03,190 Ce est juste un nom de fantaisie. 166 00:10:03,190 --> 00:10:10,440 Pendant que vous fait, chaque vue unique vous voyez lorsque vous ouvrez une application iOS, 167 00:10:10,440 --> 00:10:17,720 disons simplement que Twitter ou Facebook, chaque vue unique que vous voyez est un objet. 168 00:10:17,720 --> 00:10:22,110 Et même l'ensemble de l'application est un objet pour commencer. 169 00:10:22,110 --> 00:10:25,340 Concept très intéressant. 170 00:10:25,340 --> 00:10:28,480 >> Et pourquoi voulons-nous l'objet programmation orientée? 171 00:10:28,480 --> 00:10:33,530 Alors vous pouvez imaginer que lorsque vous programme, il devient assez compliqué. 172 00:10:33,530 --> 00:10:36,400 Disons simplement que lorsque vous êtes la mise en œuvre échiquier, 173 00:10:36,400 --> 00:10:40,020 la logique va être vraiment compliqué. 174 00:10:40,020 --> 00:10:43,280 Vous avez 36 différents morceaux, de sorte que si vous 175 00:10:43,280 --> 00:10:48,370 vouloir écrire la logique pour tous 36 pièces différentes du jeu d'échecs, 176 00:10:48,370 --> 00:10:52,150 que ça va être beaucoup de différentes fonctions et variables. 177 00:10:52,150 --> 00:10:54,070 Ce est un tas d'ennuis. 178 00:10:54,070 --> 00:10:58,980 Et probablement que vous allez écrire un méthode différente ou une fonction différente 179 00:10:58,980 --> 00:11:03,950 pour chacun de la pièce à exactement contrôler ce qu'ils font. 180 00:11:03,950 --> 00:11:08,830 >> Mais si vous faites orientée objet la programmation, l'ensemble de ces pièces 181 00:11:08,830 --> 00:11:12,440 peut être prélevée dans un seul objet. 182 00:11:12,440 --> 00:11:16,111 Et l'objet aura une certaine commune propriétés, comme ce type de pièce 183 00:11:16,111 --> 00:11:16,610 est-il? 184 00:11:16,610 --> 00:11:17,740 Quelle est sa couleur? 185 00:11:17,740 --> 00:11:19,480 Comment peut-il se déplacer? 186 00:11:19,480 --> 00:11:24,660 Et de cette façon vous avez grandement simplifier la logique de celui-ci. 187 00:11:24,660 --> 00:11:28,480 Donc, ce est juste une très bonne façon de rendre les programmes complexes, 188 00:11:28,480 --> 00:11:33,700 et la relation hiérarchique dans le programme, très simple. 189 00:11:33,700 --> 00:11:36,800 Comme nous allons voir pourquoi très rapidement lorsque 190 00:11:36,800 --> 00:11:39,660 nous sommes en train de faire programming-- quand nous sommes effectivement 191 00:11:39,660 --> 00:11:42,830 faire un code S programmation session ultérieure. 192 00:11:42,830 --> 00:11:48,120 >> Bien que, en plus de, programmation orientée objet 193 00:11:48,120 --> 00:11:50,030 est juste beaucoup de plaisir. 194 00:11:50,030 --> 00:11:51,990 Vous devez concevoir votre propre objet. 195 00:11:51,990 --> 00:11:56,080 Vous devez concevoir ce qui ne ressembler par vous-même. 196 00:11:56,080 --> 00:11:58,250 Il n'y a pas de bonne réponse à cela. 197 00:11:58,250 --> 00:12:02,940 Et ce est totalement intéressant. 198 00:12:02,940 --> 00:12:07,270 Donc, dans la programmation orientée objet, deux concepts fondamentaux 199 00:12:07,270 --> 00:12:10,130 sera la classe et l'instance. 200 00:12:10,130 --> 00:12:13,570 Une classe est fondamentalement un modèle pour objet. 201 00:12:13,570 --> 00:12:18,070 Et une instance est fondamentalement un objet spécifique. 202 00:12:18,070 --> 00:12:21,090 >> Disons simplement que vous faites un cookie. 203 00:12:21,090 --> 00:12:24,800 Dans ce cas, chaque seule biscuits vous fait retrouver avec 204 00:12:24,800 --> 00:12:27,310 va être un objet. 205 00:12:27,310 --> 00:12:35,830 Mais la plaque à biscuits que vous utilisez pour cuire tous les cookies seront une classe. 206 00:12:35,830 --> 00:12:37,880 Une classe est fondamentalement un modèle. 207 00:12:37,880 --> 00:12:46,170 Et l'instance sera l'un spécifique objet créé à partir de cette classe. 208 00:12:46,170 --> 00:12:49,970 >> Et une instance sera créé sur la base de déclaration de classe, 209 00:12:49,970 --> 00:12:56,760 comme nous le verrons plus tard dans les diapositives. 210 00:12:56,760 --> 00:13:00,010 Donc, nous allons effectivement faire un très exemple rapide [inaudible]. 211 00:13:00,010 --> 00:13:04,280 Disons que nous déclarant un objet pour un chat. 212 00:13:04,280 --> 00:13:07,930 L'objet doit have-- la classe de chat devrait 213 00:13:07,930 --> 00:13:11,260 ont certaines propriétés et méthodes. 214 00:13:11,260 --> 00:13:17,300 Quel genre de propriétés devraient les have-- classe devrait avoir le chat? 215 00:13:17,300 --> 00:13:20,580 >> Par exemple, la couleur, âge et la race, ceux 216 00:13:20,580 --> 00:13:24,440 seront variables sont spécifiques à chaque chat. 217 00:13:24,440 --> 00:13:27,790 Et ce sont des choses que nous utilisons pour décrire un chat. 218 00:13:27,790 --> 00:13:31,880 Quel genre de méthode, ou ce que peut faire un chat? 219 00:13:31,880 --> 00:13:37,160 Quelques exemples rapides seraient chasse souris, manger du poisson ou tout simplement meow. 220 00:13:37,160 --> 00:13:40,900 Ce est un vraiment rapide exemple de classe de chat. 221 00:13:40,900 --> 00:13:46,920 Et un très spécifique objet de chat sera un chat 222 00:13:46,920 --> 00:13:50,930 où nous spécifions le la couleur, l'âge et la race. 223 00:13:50,930 --> 00:13:53,790 >> Dans ce cas, notre objet est ne est plus une classe plus. 224 00:13:53,790 --> 00:14:00,010 Nous copions le modèle de la classe et nous spécifions chacun des informations spécifiques 225 00:14:00,010 --> 00:14:04,510 à cet objet spécifique de le rendre indépendant. 226 00:14:04,510 --> 00:14:09,350 Et quand vous appelez une méthode dans un objet, 227 00:14:09,350 --> 00:14:16,640 vous appelez meow sur l'objet, qui est le chat que vous venez de créer. 228 00:14:16,640 --> 00:14:19,020 >> Probablement vous imprimer quelque chose comme "Bonjour tout le monde! 229 00:14:19,020 --> 00:14:20,000 Miaou. " 230 00:14:20,000 --> 00:14:22,110 Assez mignon. 231 00:14:22,110 --> 00:14:24,500 Très bien, disons simplement entrer dans certains détails 232 00:14:24,500 --> 00:14:30,650 et voir ce qui est exactement ce que traduire en étant programmation iOS. 233 00:14:30,650 --> 00:14:36,500 Donc, dans la programmation de tous les iOS unique classe sera mis en œuvre dans deux fichiers. 234 00:14:36,500 --> 00:14:41,420 Un fichier est là, qui est appelée l'interface. 235 00:14:41,420 --> 00:14:45,300 Un autre fichier est là, qui est appelé mise en œuvre. 236 00:14:45,300 --> 00:14:48,890 >> Typiquement, l'interface aura extension.h 237 00:14:48,890 --> 00:14:51,740 comme nous l'avons vu dans les bibliothèques C. 238 00:14:51,740 --> 00:14:56,340 Et le fichier de mise en œuvre est allez avoir extension.n. 239 00:14:56,340 --> 00:14:57,260 Ce est un peu bizarre. 240 00:14:57,260 --> 00:15:01,270 Mais .n .c signifie en fait, il n'y a pas différence fondamentale entre ceux 241 00:15:01,270 --> 00:15:02,100 deux. 242 00:15:02,100 --> 00:15:06,650 Donc dans ce cas, nous pouvons voir que nous sommes déclarant interface, Cat: objet. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Cela se appelle l'héritage. 245 00:15:13,760 --> 00:15:19,170 Nous essentiellement hériter de la classe de chat de la classe d'objet. 246 00:15:19,170 --> 00:15:24,790 Donc, chaque propriété et un procédé qui était précédemment définie dans la classe de l'objet 247 00:15:24,790 --> 00:15:28,560 seront définis automatiquement dans une classe de chat ainsi. 248 00:15:28,560 --> 00:15:35,900 >> En plus de cela, nous définissons la couleur, race et l'âge, trois variables. 249 00:15:35,900 --> 00:15:39,360 Cela semble réellement comme quelque chose que vous avez fait avant. 250 00:15:39,360 --> 00:15:41,770 Il ressemble struct. 251 00:15:41,770 --> 00:15:44,950 Ce est essentiellement la syntaxe pour la déclaration de struct, 252 00:15:44,950 --> 00:15:47,710 et ce est tout à fait exact. 253 00:15:47,710 --> 00:15:51,825 Et comme je l'ai mentionné avant, la différence d'une struct 254 00:15:51,825 --> 00:15:53,960 et un objet, l'un des différences fondamentales 255 00:15:53,960 --> 00:15:59,080 est qu'un objet a procédé, tandis qu'une structure ne dispose que des variables. 256 00:15:59,080 --> 00:16:03,450 Donc, en plus des propriétés ou les variables que nous avons créés pour l'objet, 257 00:16:03,450 --> 00:16:05,700 nous spécifions une méthode. 258 00:16:05,700 --> 00:16:09,720 >> Disons que nous avons ici deux méthodes, on est meow, 259 00:16:09,720 --> 00:16:12,460 un autre est la souris chasse. 260 00:16:12,460 --> 00:16:18,600 Nous voulons probablement être passer un paramètre basé sur notre méthode précédente 261 00:16:18,600 --> 00:16:20,440 modèle de déclaration. 262 00:16:20,440 --> 00:16:22,160 Vous voulez probablement être passer une souris. 263 00:16:22,160 --> 00:16:25,180 Et vous aurez probablement envie pour renvoyer une signifiante bool 264 00:16:25,180 --> 00:16:30,010 si votre chat a réussi pris la souris ou non. 265 00:16:30,010 --> 00:16:33,170 >> Ce est l'interface, mais nous pouvons voir que l'interface fait 266 00:16:33,170 --> 00:16:35,150 ne rien faire. 267 00:16:35,150 --> 00:16:40,800 Il dit juste un programme ce exists-- ce qui existe dans la classe de chat. 268 00:16:40,800 --> 00:16:43,640 Donc, pour le programme de faire quelque chose, 269 00:16:43,640 --> 00:16:46,680 nous avons besoin d'avoir des fichiers de mise en œuvre. 270 00:16:46,680 --> 00:16:51,940 Donc ici, la première chose que nous faisons est évidemment, nous importons de l'interface. 271 00:16:51,940 --> 00:16:56,470 Après nous importons l'interface, nous définissons la méthode. 272 00:16:56,470 --> 00:17:00,150 >> Disons simplement ici meow serait tout simplement imprimer 273 00:17:00,150 --> 00:17:01,740 "Bonjour Le Monde!" à la console. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Et après la mise en œuvre fichier, nous sommes assez bien fait. 276 00:17:08,460 --> 00:17:14,530 Ce est fondamentalement une classe déclaration pour une classe. 277 00:17:14,530 --> 00:17:19,970 Alors maintenant, la question devient, comment voulez-vous déclarez une variable? 278 00:17:19,970 --> 00:17:26,880 La façon dont vous utilisez une classe pour créer un objet en Objective C est écrit ici. 279 00:17:26,880 --> 00:17:30,730 >> Vous spécifiez d'abord que ce est un pointeur de chat, 280 00:17:30,730 --> 00:17:38,700 parce que chaque objet en Objective C est finalement mis en œuvre comme un pointeur. 281 00:17:38,700 --> 00:17:46,210 Et vous appelez la classe, appelez-les que alloc, qui est essentiellement malloc, 282 00:17:46,210 --> 00:17:51,220 dire le système d'exploitation que vous besoin d'espace de mémoire pour cet objet. 283 00:17:51,220 --> 00:17:55,780 Après que vous avez un objet déjà, et vous venez de l'initialiser. 284 00:17:55,780 --> 00:17:56,780 Ce est juste convention. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Je sais que ce est est un peu bizarre, mais ce est en fait la manière dont Apple fait des trucs. 287 00:18:04,410 --> 00:18:07,130 >> Affectation des propriétés est en fait assez simple. 288 00:18:07,130 --> 00:18:09,250 Ce est très similaire à ce que vous faites quand 289 00:18:09,250 --> 00:18:13,780 vous affectez certains spécifiques champ à l'intérieur de la structure. 290 00:18:13,780 --> 00:18:16,830 Vous avez juste la variable nom, le nom de la propriété, 291 00:18:16,830 --> 00:18:20,140 et attribuer une valeur qui lui est propre. 292 00:18:20,140 --> 00:18:24,120 Et d'appeler une méthode est très similaire. 293 00:18:24,120 --> 00:18:29,080 L'appel d'une méthode est essentiellement ce que je parle 294 00:18:29,080 --> 00:18:32,390 pour appeler ne importe quelle méthode en Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Vous êtes de passage un objet, ce cas, il va être MyCat, 296 00:18:36,660 --> 00:18:42,490 et vous êtes de passage le nom de méthode. 297 00:18:42,490 --> 00:18:47,130 Comme si vous parlez à l'objet, MyCat, que vous devriez meow. 298 00:18:47,130 --> 00:18:48,570 Ce est assez intéressant. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Après cela, il n'y a une modèle de conception plus essentiel 301 00:18:55,680 --> 00:18:59,940 que nous devons parler avant d'arriver à code S réelle. 302 00:18:59,940 --> 00:19:03,300 Ce modèle de conception est appelé Si la programmation entraînée. 303 00:19:03,300 --> 00:19:09,660 Ce est aussi probablement l'un des plus idées fondamentales dans la programmation iOS. 304 00:19:09,660 --> 00:19:14,410 >> Donc, vous ne savez probablement pas ce qu'est exactement est la programmation d'un événement donné, 305 00:19:14,410 --> 00:19:16,990 mais il ne est pas vraiment effrayant. 306 00:19:16,990 --> 00:19:20,400 Eh bien en fait, vous avez déjà fait ça avant. 307 00:19:20,400 --> 00:19:24,894 Ce est l'une des lignes Vous avez probablement déjà écrit dans le dernier [inaudible] 308 00:19:24,894 --> 00:19:26,810 du CS50, google.maps.event.addListener (marqueur, 309 00:19:26,810 --> 00:19:27,810 "Clic", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 En appelant cette ligne, vous êtes essentiellement dire l'ordinateur 312 00:19:37,620 --> 00:19:42,650 que chaque fois que l'événement appelé "Clic" qui se passe sur le marqueur, 313 00:19:42,650 --> 00:19:43,630 utiliser cette fonction. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Ceci est très différent de ce que vous faites dans mario.c. 316 00:19:50,950 --> 00:19:56,670 Dans mario.c il suffit de lancer le programme fois, il vous donne une sortie, 317 00:19:56,670 --> 00:19:58,590 et vous avez terminé. 318 00:19:58,590 --> 00:20:02,590 Ce sont un peu comme une programmes de tir. 319 00:20:02,590 --> 00:20:05,830 programmes de Event driven sont très, très différent. 320 00:20:05,830 --> 00:20:10,230 Imaginons, si Facebook est un programme de tir ce ne est pas vraiment bon. 321 00:20:10,230 --> 00:20:13,750 Vous allez juste pour Facebook une fois et ce est fait. 322 00:20:13,750 --> 00:20:16,700 Il vous donne une sortie et vous ne l'avez récupéré. 323 00:20:16,700 --> 00:20:19,380 Vous ne avez jamais eu rien de plus. 324 00:20:19,380 --> 00:20:23,880 >> Donc ici, surtout le modèle que nous utilisons est 325 00:20:23,880 --> 00:20:26,940 événement entraînée, de sorte que Chaque fonction 326 00:20:26,940 --> 00:20:31,480 être pris sur la base de ce événement qui se est passé. 327 00:20:31,480 --> 00:20:34,670 Par exemple, si nous avons un bouton et nous spécifions 328 00:20:34,670 --> 00:20:39,870 que chaque fois que ce bouton est cliqué, appeler la fonction appelée "Bonjour tout le monde!" 329 00:20:39,870 --> 00:20:47,810 De cette façon, nous pouvons vraiment gérer la logique de fonctionnement 330 00:20:47,810 --> 00:20:50,560 se écouler de manière très flexible. 331 00:20:50,560 --> 00:20:55,840 L'utilisateur peut faire ou appeler une fonction qui a déjà été appelée. 332 00:20:55,840 --> 00:20:59,900 Il est entièrement basé sur ce que les utilisateurs font. 333 00:20:59,900 --> 00:21:04,080 >> Ainsi nous pouvons voir que ce est fait beaucoup mieux que mario.c. 334 00:21:04,080 --> 00:21:07,190 Et de bonnes nouvelles, ce est que ce est effectivement pas un concept nouveau. 335 00:21:07,190 --> 00:21:12,140 Les gars, vous avez déjà fait que, dans le dernier problème réglé. 336 00:21:12,140 --> 00:21:16,640 Donc en Objective C il ya trois schémas différents 337 00:21:16,640 --> 00:21:19,030 pour programmation événementielle. 338 00:21:19,030 --> 00:21:21,970 Le premier diagramme est appelé l'action cible, 339 00:21:21,970 --> 00:21:26,990 où vous liez un bouton presse avec une certaine fonction. 340 00:21:26,990 --> 00:21:31,590 Disons simplement que, lorsque vous cliquez sur certains bouton, vous appelez une fonction. 341 00:21:31,590 --> 00:21:33,620 Ce est l'action cible très simple. 342 00:21:33,620 --> 00:21:35,580 >> La seconde est une en fait le plus difficile, 343 00:21:35,580 --> 00:21:38,450 ça se appelle la délégation sur le protocole. 344 00:21:38,450 --> 00:21:41,800 Nous allons expliquer que, dans beaucoup de détails plus tard. 345 00:21:41,800 --> 00:21:44,420 Et la troisième voie est notification. 346 00:21:44,420 --> 00:21:46,770 Ce est en fait pas très important dans la mesure où 347 00:21:46,770 --> 00:21:50,920 qui nous concerne, parce que la chance que vous allez utiliser la notification 348 00:21:50,920 --> 00:21:53,310 dans votre projet final est assez faible. 349 00:21:53,310 --> 00:21:56,440 Donc, nous allons sauter cette partie. 350 00:21:56,440 --> 00:21:59,460 >> Et nous allons plonger en délégation sur le protocole. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 En quoi consiste exactement un protocole? 353 00:22:04,470 --> 00:22:06,450 Ou qu'est-ce qu'une délégation? 354 00:22:06,450 --> 00:22:09,670 Parlons de protocole pour commencer. 355 00:22:09,670 --> 00:22:13,360 Protocoles ne sont rien mais les événements. 356 00:22:13,360 --> 00:22:19,230 Mais ces événements sont donnés à vous par Apple pour commencer. 357 00:22:19,230 --> 00:22:22,640 Par exemple, je ne suis pas complètement sûr combien d'entre vous 358 00:22:22,640 --> 00:22:27,930 les gars utilisent d'Apple d'origine app email ou un contact, 359 00:22:27,930 --> 00:22:32,180 mais chaque fois que vous faites défiler la table et appuyez sur la cellule spécifique 360 00:22:32,180 --> 00:22:36,130 sur la table, ce est un événement. 361 00:22:36,130 --> 00:22:38,330 >> Et si vous voulez faire cet événement par vous-même, 362 00:22:38,330 --> 00:22:40,410 ce est en fait un peu difficile. 363 00:22:40,410 --> 00:22:44,880 Donc Apple a donné que même de vous de sorte que vous pouvez simplement utiliser directement 364 00:22:44,880 --> 00:22:49,610 l'événement pour faire quelque chose sur votre propre. 365 00:22:49,610 --> 00:22:52,980 Les protocoles sont effectivement vraiment, vraiment largement utilisé 366 00:22:52,980 --> 00:22:58,320 en Objective C. Eh bien dans fait, chaque application unique 367 00:22:58,320 --> 00:23:00,870 a quelque chose pris app délégué. 368 00:23:00,870 --> 00:23:06,330 A l'intérieur du délicate est la totalité de la protocoles pour le chargement de l'application. 369 00:23:06,330 --> 00:23:12,470 >> Disons simplement il est un événement pour l'application a la charge. 370 00:23:12,470 --> 00:23:18,200 Donc, ce qui devrait arriver après que vous avez créé une application, une fois que vous ouvrez l'application, 371 00:23:18,200 --> 00:23:22,630 lorsque vous fermez l'application, ou après vous mettez l'iPhone pour dormir. 372 00:23:22,630 --> 00:23:27,480 Ce sont tous des événements qui ont déjà été donnée à vous. 373 00:23:27,480 --> 00:23:34,730 Et à l'origine à l'intérieur de ces particules il n'y aura pas mise en oeuvre. 374 00:23:34,730 --> 00:23:39,750 Apple vient de vous a dit que cette fonction va se passer quand un événement se produit, 375 00:23:39,750 --> 00:23:44,380 mais ce que vous faites avec ce fonction est complètement à vous. 376 00:23:44,380 --> 00:23:49,290 >> La délégation est essentiellement dire la classe 377 00:23:49,290 --> 00:23:53,060 que vous devez gérer ces protocoles. 378 00:23:53,060 --> 00:23:55,340 Ce est un peu confus, mais il sera 379 00:23:55,340 --> 00:23:59,380 beaucoup plus clair quand nous faisons les codes de s en action. 380 00:23:59,380 --> 00:24:04,760 Délégation sur le protocole est en fait un mécanisme très robuste en ce sens 381 00:24:04,760 --> 00:24:08,160 que si nous faisons délégation à une classe spécifique, 382 00:24:08,160 --> 00:24:12,400 nous pouvons gérer l'essentiel toutes sortes d'événements 383 00:24:12,400 --> 00:24:17,040 en utilisant ne importe quelle classe que nous avons, outil très pratique. 384 00:24:17,040 --> 00:24:21,530 >> Donc, un exemple rapide pour délégation sur le protocole 385 00:24:21,530 --> 00:24:24,120 sera ce que je viens de parler. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Ce protocole est appelé spécifiquement tableview [inaudible] sélectionner rôle 388 00:24:30,890 --> 00:24:35,480 au [? index?] [? passé. ?] Donc ce une événement qui serait pris lorsque vous 389 00:24:35,480 --> 00:24:39,710 fait taper sur un spécifique cellule dans votre tableview, 390 00:24:39,710 --> 00:24:43,570 disons simplement dans votre courrier ou dans votre application Contacts. 391 00:24:43,570 --> 00:24:48,180 >> A l'intérieur d'une fonction y avait faire à l'origine rien. 392 00:24:48,180 --> 00:24:51,950 La fonction ne est pas faire quelque chose par défaut. 393 00:24:51,950 --> 00:24:55,540 Mais vous pouvez spécifier ce que fait la fonction, 394 00:24:55,540 --> 00:24:59,610 compte tenu de ce que vous voulez de votre application. 395 00:24:59,610 --> 00:25:01,610 Outil très pratique. 396 00:25:01,610 --> 00:25:06,840 Et avec tout ce que étant dit, je ai pratiquement 397 00:25:06,840 --> 00:25:11,430 couvrir une syntaxe très basique et concept fondamental pour Objective C 398 00:25:11,430 --> 00:25:15,860 programmation, et nous pouvons faire un peu de code s. 399 00:25:15,860 --> 00:25:17,980 Beaucoup plus excitant. 400 00:25:17,980 --> 00:25:21,070 Donc code s est en fait un peu écrasante 401 00:25:21,070 --> 00:25:23,330 lorsque vous l'ouvrez pour la première fois. 402 00:25:23,330 --> 00:25:26,640 >> Une note rapide, donc si vous vouloir faire du développement iOS, 403 00:25:26,640 --> 00:25:29,630 Je recommande fortement vous avez un Mac. 404 00:25:29,630 --> 00:25:33,930 Parce que faire du développement sur iOS Windows est vraiment, vraiment dur. 405 00:25:33,930 --> 00:25:37,560 Ce est faisable, mais ce est vraiment difficile. 406 00:25:37,560 --> 00:25:40,610 Et vous faites certainement ne pas vouloir utiliser g modifier. 407 00:25:40,610 --> 00:25:47,950 Donc, dans le code de s nous avons plusieurs domaines différents. 408 00:25:47,950 --> 00:25:53,050 Le code Lorsque vous ouvrez pour la première place vous verrez une zone de navigation, 409 00:25:53,050 --> 00:25:57,470 qui montre fondamentalement, vous tous les fichiers qui est dans votre projet actuel. 410 00:25:57,470 --> 00:26:03,590 >> Vous avez une zone de barre d'outils, qui est essentiellement la gestion des points de vue, 411 00:26:03,590 --> 00:26:08,570 ou quelque peu rapide outils sur le code de lui-même. 412 00:26:08,570 --> 00:26:11,140 Et ce est la zone de l'éditeur réelle. 413 00:26:11,140 --> 00:26:15,900 Cette zone est très similaire g modifier, mais beaucoup mieux que g modifier. 414 00:26:15,900 --> 00:26:21,150 Et dans ce domaine droite, est appelé la zone d'utilité. 415 00:26:21,150 --> 00:26:27,170 La zone devient vraiment pratique lorsque vous créez interface ou spécifier 416 00:26:27,170 --> 00:26:30,070 certaines configurations rapides pour votre application. 417 00:26:30,070 --> 00:26:34,570 >> Et le dernier domaine est le débogage. 418 00:26:34,570 --> 00:26:37,970 Cette zone contient la console. 419 00:26:37,970 --> 00:26:43,170 Donc, lorsque vous dites printf, ou NSLog dans notre cas, 420 00:26:43,170 --> 00:26:47,330 tous vos résultats sont va être imprimé ici. 421 00:26:47,330 --> 00:26:48,260 Bien? 422 00:26:48,260 --> 00:26:52,090 Je suppose que nous pouvons vraiment faire rapidement un exemple pour la programmation iOS. 423 00:26:52,090 --> 00:26:54,220 Et ouvrons effectivement en place de code. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Ainsi, chaque fois que vous ouvrez de code, ce est va montrer quelque chose comme ça. 426 00:27:01,346 --> 00:27:03,220 Il va vous demander qu'est-ce que vous voulez faire? 427 00:27:03,220 --> 00:27:06,830 Voulez-vous commencer quelque chose aléatoire, une aire de jeux, fondamentalement, vous 428 00:27:06,830 --> 00:27:11,250 peut simplement tester le code sans fait de se engager à ne importe quelle application. 429 00:27:11,250 --> 00:27:13,020 >> Voulez-vous créer un nouveau projet? 430 00:27:13,020 --> 00:27:16,660 Ou voulez-vous continuer travaillant sur le projet existant? 431 00:27:16,660 --> 00:27:20,270 Dans notre cas, nous allons pour créer un nouveau projet. 432 00:27:20,270 --> 00:27:22,980 Donc, ce est vraiment agréable, s code a déjà fait 433 00:27:22,980 --> 00:27:26,820 vous donné quelques modèles pour créer des objets. 434 00:27:26,820 --> 00:27:32,680 Si vous voulez faire un jeu, S Code a fait un modèle de jeu pour vous, 435 00:27:32,680 --> 00:27:36,890 a page en fonction des applications, application de tabulation. 436 00:27:36,890 --> 00:27:39,280 Dans ce cas, nous allons de faire quelque chose de très simple, 437 00:27:39,280 --> 00:27:43,230 et nous allons utiliser un seule application de la vue. 438 00:27:43,230 --> 00:27:48,270 >> Après cela, tout ce que vous voulez appeler votre produit, et ce est votre nom, 439 00:27:48,270 --> 00:27:52,760 quel est votre identifiant et quelle langue utilisez-vous. 440 00:27:52,760 --> 00:27:57,060 Ici, nous ne voulons pas vérifier à l'aide de données de base. 441 00:27:57,060 --> 00:28:00,170 Core Data est fondamentalement un databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Si vous faites Core Data, s Code va définir 443 00:28:05,360 --> 00:28:07,710 un lot classes plus compliquées pour vous. 444 00:28:07,710 --> 00:28:12,740 Donc, pour garder tout simple, nous sommes juste faire sans Core Data 445 00:28:12,740 --> 00:28:15,290 maintenant. 446 00:28:15,290 --> 00:28:18,030 >> Le problème que nous allons être l'aide est le problème that-- 447 00:28:18,030 --> 00:28:23,770 nous allons être la création est que nous veulent essentiellement à importer Mario de C 448 00:28:23,770 --> 00:28:25,437 à une application iOS. 449 00:28:25,437 --> 00:28:26,645 Donc disons que Mario iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Bien sûr, vous indiquez ce que vous vouloir mettre dans votre projet. 452 00:28:34,880 --> 00:28:37,870 Et là nous allons. 453 00:28:37,870 --> 00:28:41,390 >> Donc, ce est un peu écrasante, mais ce est en fait 454 00:28:41,390 --> 00:28:43,540 ce que nous venons de voir sur les diapositives. 455 00:28:43,540 --> 00:28:49,710 Et la première zone, nous voyons en ce moment est fondamentalement la configuration du projet. 456 00:28:49,710 --> 00:28:53,390 Donc, tout ce que vous voulez faire projet, ce type de dispositif, 457 00:28:53,390 --> 00:28:58,810 disons simplement que ce genre de dispositif Veux-tu votre application à apparaître sur? 458 00:28:58,810 --> 00:29:01,280 Est-ce l'iPhone, iPad ou universel? 459 00:29:01,280 --> 00:29:04,660 Donc orientation de l'appareil, tous ces trucs. 460 00:29:04,660 --> 00:29:08,490 Pas très important, mais pourrait être, mais cette 461 00:29:08,490 --> 00:29:11,050 est un endroit où vous configurez votre projet si vous avez réellement 462 00:29:11,050 --> 00:29:15,180 vouloir déployer sur l'Apple Store. 463 00:29:15,180 --> 00:29:20,420 >> Très bien, regardons quelque chose qui est dans notre code. 464 00:29:20,420 --> 00:29:22,360 Passons en revue le fichier navigateur. 465 00:29:22,360 --> 00:29:30,140 Et ce sont tous les fichiers qui ont déjà est venu avec le modèle, très agréable. 466 00:29:30,140 --> 00:29:35,980 Alors, quand nous cliquons l'un d'eux ce est à quoi il ressemble. 467 00:29:35,980 --> 00:29:38,530 Très semblable à g modifier. 468 00:29:38,530 --> 00:29:41,340 Mais vous pouvez voir que le la coloration syntaxique est probablement 469 00:29:41,340 --> 00:29:42,780 un peu plus agréable. 470 00:29:42,780 --> 00:29:45,610 Et ce est en réalité beaucoup plus puissant que g édition. 471 00:29:45,610 --> 00:29:49,970 Et vous pouvez compléter automatique beaucoup de choses pour vous, 472 00:29:49,970 --> 00:29:52,370 comme nous le verrons très rapidement. 473 00:29:52,370 --> 00:29:54,100 >> Ouvrons la zone de mise au point ainsi. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Très bien, comme nous pouvons le voir, la console est ici. 476 00:30:07,000 --> 00:30:13,840 Ce est ce que vous allez voir où vous êtes dans printf ou nsloging quelque chose. 477 00:30:13,840 --> 00:30:17,155 Alors sans plus tarder, nous allons effectivement compiler l'application et voir ce qui arrive. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Une caractéristique essentielle pour code s, est que le code de s 480 00:30:23,410 --> 00:30:25,850 est livré avec un simulateur d'iPhone. 481 00:30:25,850 --> 00:30:29,820 Donc, vous ne avez pas besoin d'avoir un iPhone pour tenter votre projet, 482 00:30:29,820 --> 00:30:34,440 code de s peut simuler que, pour vous, comme nous pouvons voir en ce moment. 483 00:30:34,440 --> 00:30:36,406 >> Ce est assez agréable. 484 00:30:36,406 --> 00:30:38,640 Ce est en prenant un peu de peu de temps pour compiler 485 00:30:38,640 --> 00:30:43,040 et fondamentalement, nous avons une application vide, 486 00:30:43,040 --> 00:30:44,640 qui ne fait rien. 487 00:30:44,640 --> 00:30:46,175 Mais il compile. 488 00:30:46,175 --> 00:30:47,380 Ce est assez impressionnant. 489 00:30:47,380 --> 00:30:50,200 Ce est beaucoup mieux que C, hein? 490 00:30:50,200 --> 00:30:52,130 Très bien, alors nous allons essayer d'ajouter quelque chose. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Un fichier qui est un peu bizarre ici est appelé storyboard. 493 00:31:02,650 --> 00:31:08,020 Ce est en fait un grand, dispositif impressionnant pour le code de s. 494 00:31:08,020 --> 00:31:14,170 Parce que dans le code de s, vous pouvez réellement glisser et déposer des éléments sur l'interface 495 00:31:14,170 --> 00:31:17,430 et il affichera directement en place. 496 00:31:17,430 --> 00:31:18,055 Essayons. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Nous laissons tomber une étiquette ici, "Bonjour tout le monde !!!" 499 00:31:27,236 --> 00:31:29,740 Nous pouvons centre qui. 500 00:31:29,740 --> 00:31:30,970 Pretty cool. 501 00:31:30,970 --> 00:31:33,915 Maintenant, nous allons exécuter cette simulation d'arrêt. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Ici, nous avons "Bonjour tout le monde !!!" 504 00:31:38,700 --> 00:31:40,810 Nous ne avons même pas fait encore de codage. 505 00:31:40,810 --> 00:31:42,750 Que diable se passe? 506 00:31:42,750 --> 00:31:45,880 Ce est la puissance Interface Builder peut être. 507 00:31:45,880 --> 00:31:48,030 Quelqu'un a même dit que vous pouvez probablement juste 508 00:31:48,030 --> 00:31:52,800 compléter une application sans écriture probablement un millier de lignes de code 509 00:31:52,800 --> 00:31:54,820 en utilisant simplement l'Interface Builder. 510 00:31:54,820 --> 00:31:59,680 Mais ce ne est probablement pas la meilleure façon de le faire. 511 00:31:59,680 --> 00:32:01,670 >> Maintenant, nous allons effectivement passer aux choses de codage. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Donc, la structure du fichier est en fait vraiment intéressant 514 00:32:08,330 --> 00:32:15,610 parce que, comme vous pouvez le voir, il ne est pas la fonction principale ne importe où. 515 00:32:15,610 --> 00:32:17,466 Voir? 516 00:32:17,466 --> 00:32:19,340 Comme nous l'avons mentionné auparavant, vous pouvez voir que ce 517 00:32:19,340 --> 00:32:22,830 est un fichier de mise en œuvre pour une classe spécifique. 518 00:32:22,830 --> 00:32:25,690 Mais il n'y a pas partout principale. 519 00:32:25,690 --> 00:32:27,490 Alors, où est le principal? 520 00:32:27,490 --> 00:32:31,970 En fait, il se agit d'un principal, mais le principale est en fait caché. 521 00:32:31,970 --> 00:32:34,560 Le principal est ici. 522 00:32:34,560 --> 00:32:37,120 Cela semble familier. 523 00:32:37,120 --> 00:32:41,000 >> Donc, fondamentalement, ce iOS est de faire l'intérieur principale 524 00:32:41,000 --> 00:32:43,540 est que chaque fois que principal est appelé, qui est essentiellement 525 00:32:43,540 --> 00:32:49,000 chaque fois que l'application est exécutée, elle crée un objet appelé AppDelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Comme je l'ai mentionné avant, l'ensemble application est en fait un objet en lui-même. 528 00:32:57,350 --> 00:33:02,270 Donc, de cette manière, essentiellement le iOS est dit le compilateur 529 00:33:02,270 --> 00:33:05,540 que OK, je vais créer un produit appelé AppDelegate, 530 00:33:05,540 --> 00:33:07,620 et que va être mon application. 531 00:33:07,620 --> 00:33:09,640 Donc, vous devez aller à travers cette AppDelegate 532 00:33:09,640 --> 00:33:12,040 et voir ce que ce gars fait. 533 00:33:12,040 --> 00:33:14,850 Mon travail est fait pour moi. 534 00:33:14,850 --> 00:33:22,070 >> Et dans AppDelegate vous pouvez voir que il ya quelques fonctions vraiment bizarre, 535 00:33:22,070 --> 00:33:25,290 Eh bien en fait des méthodes, que Apple a déjà donné. 536 00:33:25,290 --> 00:33:27,464 Qu'est-ce que c'est? 537 00:33:27,464 --> 00:33:31,010 Ce sont en fait seulement protocoles que je parlais. 538 00:33:31,010 --> 00:33:35,670 Donc, ce sont des événements que Apple vous a donné pour commencer. 539 00:33:35,670 --> 00:33:38,050 Il n'y a rien dans certains des fonctions en ce moment, 540 00:33:38,050 --> 00:33:40,820 mais si nous voulons initialiser quelque chose pour notre application 541 00:33:40,820 --> 00:33:46,140 avant d'entrer dans l'affichage ne importe quelle vue, nous le faisons ici. 542 00:33:46,140 --> 00:33:51,150 >> Vous pouvez simplement lire le nom et je suppose l'événement est effectivement très clair. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Alors maintenant, principale a créé un objet pour AppDelegate. 545 00:33:58,350 --> 00:34:05,220 Et ce AppDelegate va faire est en réalité aussi cachée de vous. 546 00:34:05,220 --> 00:34:09,250 Le AppDelegate va commencer charger le stock ViewController. 547 00:34:09,250 --> 00:34:13,170 Donc, ce est essentiellement va commencer le chargement de tous les points de vue que vous avez 548 00:34:13,170 --> 00:34:17,500 et juste de rendre la vue sur la base de la hiérarchie. 549 00:34:17,500 --> 00:34:21,280 >> Donc dans ce cas nous ne avons un point de vue, qui est ici. 550 00:34:21,280 --> 00:34:25,060 Donc, ce est la seule vue que ça va être appelé. 551 00:34:25,060 --> 00:34:28,159 La logique ViewController est ici. 552 00:34:28,159 --> 00:34:32,159 Ce est le code qui fait contrôle la vue que nous venons de voir. 553 00:34:32,159 --> 00:34:33,679 Très bien, nous allons faire quelque chose ici. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Donc viewDidLoad sonne comme un événement, alors qu'en fait, ce est aussi un délégué, 556 00:34:50,560 --> 00:34:52,500 ce est aussi un protocole. 557 00:34:52,500 --> 00:34:56,350 >> Donc, quel que soit le point de vue est chargé, tout à l'intérieur de la fonction 558 00:34:56,350 --> 00:34:57,920 sera appelée. 559 00:34:57,920 --> 00:35:02,840 Dans ce cas, nous devrions voir "Bonjour Tianyu! "Si nous exécuter le programme. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Il commence à faire un peu lent compilation de fichiers storyboard. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Eh bien en fait, nous ne voyons une sortie pour elle. 564 00:35:18,190 --> 00:35:20,720 Ce est plutôt cool. 565 00:35:20,720 --> 00:35:22,000 Maintenant, nous allons effectivement faire Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Je vais définir le fonctionner très rapidement. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: résultats (int) de niveau. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Très bien, ce est effectivement le génial caractéristique de code s auto complétion. 572 00:36:06,410 --> 00:36:10,680 Ainsi, lorsque vous écrivez pour entrer et tapez, il a déjà abandonné le modèle 573 00:36:10,680 --> 00:36:12,325 pour vous, ce qui est assez cool. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Cela devrait vraiment regarder familiers à vous les gars. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Désolé, ce est de ma faute. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Très bien, cool. 580 00:37:18,120 --> 00:37:22,710 Cette logique devrait ressembler vraiment familier à vous les gars, surtout juste Mario. 581 00:37:22,710 --> 00:37:26,140 >> Mais nous allons maintenant imprimer pour la console à chaque fois unique, 582 00:37:26,140 --> 00:37:29,280 parce que nous voulons garder en quelque sorte une trace de ce que nous publions. 583 00:37:29,280 --> 00:37:31,810 Nous allons utiliser le résultats en quelque sorte plus tard, 584 00:37:31,810 --> 00:37:35,010 pour afficher l'impression à entraîner à l'utilisateur. 585 00:37:35,010 --> 00:37:37,730 Ainsi, au lieu nous sommes juste nslogging tout, 586 00:37:37,730 --> 00:37:42,410 que nous faisons tout stockage en conséquence fonction d'appel, 587 00:37:42,410 --> 00:37:44,070 mais la logique est exactement le même. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Après nous terminons, nous il suffit d'imprimer nos résultats. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Et ici, au lieu d'imprimer mon nom, nous allons appeler une fonction. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Voyons ce qui se passe. 594 00:38:18,090 --> 00:38:21,240 Oops, évidemment. 595 00:38:21,240 --> 00:38:24,320 Nous avons une belle petite pyramide ici. 596 00:38:24,320 --> 00:38:28,370 Il se agit essentiellement C, nous sommes juste manipulation où vous appelez une fonction 597 00:38:28,370 --> 00:38:30,010 et comment ne fonction ressembler. 598 00:38:30,010 --> 00:38:31,560 Il ya rien de différent. 599 00:38:31,560 --> 00:38:34,040 Mais ce est en fait pas très excitant ici, 600 00:38:34,040 --> 00:38:37,500 parce que nous ne voyons pas quelque chose de l'application iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Donc, si vous avez réellement un iPhone app-- si vous avez réellement Mario iOS droit 602 00:38:42,120 --> 00:38:45,080 maintenant, vous ne allez pas pour voir tout ce qui 603 00:38:45,080 --> 00:38:49,450 n'a rien à voir avec Mario parce toutes ces sorties dans une console 604 00:38:49,450 --> 00:38:51,620 sont cachés à partir d'un utilisateur. 605 00:38:51,620 --> 00:38:53,850 Ce est ce que vous voyez, qui est "Bonjour tout le monde !!!" 606 00:38:53,850 --> 00:38:55,720 Pas bon. 607 00:38:55,720 --> 00:39:03,090 Maintenant, nous allons essayer de faire de l'utilisateur voir exactement ce que nous allons imprimer. 608 00:39:03,090 --> 00:39:06,000 Donc, nous ne avons pas besoin d'étiqueter plus. 609 00:39:06,000 --> 00:39:09,800 Essayons de comprendre quelque chose chose qui pourrait être utile. 610 00:39:09,800 --> 00:39:12,140 >> Il est en fait une élément qui est appelée 611 00:39:12,140 --> 00:39:16,460 champ de texte, qui pourrait être très utile pour nous. 612 00:39:16,460 --> 00:39:19,880 Il présente essentiellement une région de texte qui peut être édité. 613 00:39:19,880 --> 00:39:22,320 Alors que l'air vraiment utile. 614 00:39:22,320 --> 00:39:23,810 Maintenant, nous allons le faire glisser et déposez-le. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, nous avons une vue de texte à notre avis, vraiment envie. 617 00:39:32,670 --> 00:39:35,430 Ce est un peu trop grand. 618 00:39:35,430 --> 00:39:38,150 Faisons plus petit. 619 00:39:38,150 --> 00:39:40,290 Mettez-le dans le centre. 620 00:39:40,290 --> 00:39:43,760 Le rendre plus petit ainsi. 621 00:39:43,760 --> 00:39:50,110 >> Maintenant nous avons une vue de texte, que nous pourrions être utilisé pour afficher notre résultat final. 622 00:39:50,110 --> 00:39:52,860 Mais maintenant il est certainement pas aller travailler 623 00:39:52,860 --> 00:39:56,970 car il est l'no-- ViewController nous venons 624 00:39:56,970 --> 00:40:03,010 défini ne sait pas que il est une vue de texte là-bas. 625 00:40:03,010 --> 00:40:06,550 Nous devons donc en quelque sorte lier le mode de texte que nous venons 626 00:40:06,550 --> 00:40:11,660 créé avec la classe que a déjà venir avec nous. 627 00:40:11,660 --> 00:40:14,860 >> La façon dont nous faisons qui est en fait vraiment magique. 628 00:40:14,860 --> 00:40:18,190 Donc, ouvrez storyboard. 629 00:40:18,190 --> 00:40:22,220 Il ya une spéciale [inaudible] appelé [? assistant?] [inaudible]. 630 00:40:22,220 --> 00:40:25,190 Lorsque vous cliquez sur ça, ce est va ouvrir deux fichiers. 631 00:40:25,190 --> 00:40:29,425 L'un est une classe et l'autre est une vue correspondant pour cela. 632 00:40:29,425 --> 00:40:31,920 Ce est très, très utile. 633 00:40:31,920 --> 00:40:35,950 Et nous allons va juste dans le fichier .h. 634 00:40:35,950 --> 00:40:39,110 Contrôle, ce est [inaudible] logique. 635 00:40:39,110 --> 00:40:47,280 Contrôle et faites glisser la presse Voir texte dans la déclaration. 636 00:40:47,280 --> 00:40:48,780 Nous allons appeler cela outputView. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Connectez. 639 00:40:53,670 --> 00:40:59,420 Nous avons donc ici un nouveau déclarée propriété pour notre classe de ViewController. 640 00:40:59,420 --> 00:41:02,300 Et la nouvelle propriété est juste la vue de texte 641 00:41:02,300 --> 00:41:05,000 nous avons créé dans le bâtiment de l'interface. 642 00:41:05,000 --> 00:41:07,990 Ainsi de cette façon nous pouvions l'accès de toutes les données 643 00:41:07,990 --> 00:41:13,630 et tout ce qui est à l'intérieur de manipuler la vue de sortie, ce qui est génial. 644 00:41:13,630 --> 00:41:19,260 >> Donc, dans notre code actuel, nous allons faire quelque chose avec elle. 645 00:41:19,260 --> 00:41:23,810 Alors, cette fois quand nous sommes comme l'impression le résultat final pour Mario, 646 00:41:23,810 --> 00:41:28,020 nous sommes en ne enregistrant pas rien. 647 00:41:28,020 --> 00:41:30,080 Je veux dire que nous pouvions garder la déclaration d'enregistrement. 648 00:41:30,080 --> 00:41:41,490 En plus de cela, nous envoyer le lecture que nous venons 649 00:41:41,490 --> 00:41:47,622 créé à la vue de sortie, qui est une interface textview nous venons de créer. 650 00:41:47,622 --> 00:41:48,746 Voyons maintenant ce qui se passe. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Hou La La. 653 00:41:56,620 --> 00:41:59,130 Nous avons une pyramide dans l'application dès maintenant. 654 00:41:59,130 --> 00:42:06,720 >> Ainsi, l'utilisateur peut voir notre production parce nous avons copié la sortie de notre code 655 00:42:06,720 --> 00:42:08,045 à notre interface. 656 00:42:08,045 --> 00:42:10,950 Il est assez bon. 657 00:42:10,950 --> 00:42:14,990 Ce est en fait pas si excitante parce que nous can-- 658 00:42:14,990 --> 00:42:18,250 Tout le soft est fait est montrant une pyramide à vous, 659 00:42:18,250 --> 00:42:20,520 et il n'y a rien que vous pouvez faire à ce sujet. 660 00:42:20,520 --> 00:42:22,330 Ce ne est pas particulièrement excitant. 661 00:42:22,330 --> 00:42:27,840 Alors maintenant, nous allons faire un bouton qui va effacer les vues. 662 00:42:27,840 --> 00:42:30,290 Semble qu'un bouton sera utile. 663 00:42:30,290 --> 00:42:33,270 Faites glisser-déposer. 664 00:42:33,270 --> 00:42:33,900 Un bouton. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Bouton deux. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Alors, quand nous cliquons sur le gauche bouton, la vue doit effacer. 669 00:42:52,052 --> 00:42:53,635 Il devrait y avoir rien sur l'écran. 670 00:42:53,635 --> 00:42:56,970 Et quand nous cliquons sur le bouton droit, Mario, 671 00:42:56,970 --> 00:42:59,740 la vue va apparaître à nouveau. 672 00:42:59,740 --> 00:43:05,510 Ainsi de cette façon nous faisons aussi le des trucs de magie, de contrôle et de glisser 673 00:43:05,510 --> 00:43:08,740 à la déclaration de classe dans le director-- assistant 674 00:43:08,740 --> 00:43:11,600 dans la visionneuse assistant. 675 00:43:11,600 --> 00:43:18,620 Dans ce cas, nous spécifions que cela devrait être une action. 676 00:43:18,620 --> 00:43:19,120 clearMario. 677 00:43:19,120 --> 00:43:21,650 678 00:43:21,650 --> 00:43:26,830 >> Donc, ici, nous avons déjà créé une action appelée clearMario, 679 00:43:26,830 --> 00:43:34,210 qui est la méthode qui serait appelé chaque fois que nous sur la touche CLEAR. 680 00:43:34,210 --> 00:43:41,030 Donc, dans notre réalité code, disons simplement mettre le texte de sortie et la vue de sortie 681 00:43:41,030 --> 00:43:44,620 en rien, et de cette façon il paraît clair. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 En plus de cela, nous allons créer une autre méthode appelée runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh désolé, cela ne devrait pas être une propriété. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Très bien, ce devrait être une action aussi bien. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Lorsque cette fonction est appelé, lancez simplement Mario dix. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Espérons que ce sera très bien. 692 00:44:39,780 --> 00:44:41,120 Est-il compiler? 693 00:44:41,120 --> 00:44:43,920 Oui. 694 00:44:43,920 --> 00:44:45,090 Maintenant, nous avons une vue. 695 00:44:45,090 --> 00:44:46,560 Nous avons une sortie. 696 00:44:46,560 --> 00:44:50,040 Et nous allons voir ce qui arrive. 697 00:44:50,040 --> 00:44:52,590 Ce est parti. 698 00:44:52,590 --> 00:44:54,500 Il est de retour. 699 00:44:54,500 --> 00:44:57,620 Nous avons donc ici spécifiée ce genre de fonction 700 00:44:57,620 --> 00:45:00,400 sera appelée quand nous tapons dans quelque chose, 701 00:45:00,400 --> 00:45:03,160 quand on appuie sur un bouton spécifique. 702 00:45:03,160 --> 00:45:07,890 Ce est essentiellement le programme d'action de la cible 703 00:45:07,890 --> 00:45:12,510 pour event driven la programmation en Objective C. 704 00:45:12,510 --> 00:45:15,030 >> En plus de cela, ce ne est pas très excitant 705 00:45:15,030 --> 00:45:19,810 parce que nous ne pouvons pas vraiment changer à quelle hauteur la pyramide aura, 706 00:45:19,810 --> 00:45:23,640 nous voulons donc probablement en quelque sorte obtenir une entrée de l'utilisateur 707 00:45:23,640 --> 00:45:29,490 et changer la hauteur de la pyramide basée sur ce qu'ils sortie. 708 00:45:29,490 --> 00:45:32,900 Donc, nous allons le faire. 709 00:45:32,900 --> 00:45:38,720 Alors, cette fois, lorsque nous appelons runMario, nous ne nous appelons pas Mario directement. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Le titre de celui-ci. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Délégué. 714 00:46:23,700 --> 00:46:25,160 Ce est très intéressant. 715 00:46:25,160 --> 00:46:26,720 Qu'est-ce qu'un délégué? 716 00:46:26,720 --> 00:46:28,950 Je vais mettre l'auto ici. 717 00:46:28,950 --> 00:46:31,038 Et nous allons voir ce que cela signifie plus tard. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Donc, ici, nous avons essentiellement créé un instance spécifique appelé une alerte de l'interface utilisateur 720 00:46:51,120 --> 00:46:52,210 vue. 721 00:46:52,210 --> 00:46:54,440 Une vue d'alerte de l'interface utilisateur est essentiellement ce que vous voulez 722 00:46:54,440 --> 00:46:58,940 voir tous les fois que quelque chose pops et vous demande pour l'entrée, 723 00:46:58,940 --> 00:47:03,080 comme ce qui se passera quand vous essayez d'acheter quelque chose sur un app store. 724 00:47:03,080 --> 00:47:14,250 >> En plus de cela, après avoir créer, nous montrons simplement l'alerte. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Très bien, disons simplement rapidement Test cela fonctionnera ou pas. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Ce est très cool. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Maintenant, nous allons créer en fait une champ de saisie pour l'alerte de l'interface utilisateur. 731 00:47:59,120 --> 00:48:01,170 Ce est ainsi que nous faisons cela. 732 00:48:01,170 --> 00:48:07,490 Et nous devrions avoir une vue d'entrée pour l'alerte. 733 00:48:07,490 --> 00:48:09,020 Très cool. 734 00:48:09,020 --> 00:48:12,330 Disons simplement 10. 735 00:48:12,330 --> 00:48:14,900 >> Ce ne est pas de faire quelque chose de bien maintenant parce que l'appel fait 736 00:48:14,900 --> 00:48:17,770 n'a pas changé pour l'exécution de mario. 737 00:48:17,770 --> 00:48:23,470 Donc, ce est devenu un peu peu bizarre parce que chaque fois 738 00:48:23,470 --> 00:48:30,790 nous appuyer sur un bouton vers le bas, chaque fois que nous appuyez sur un bouton dans l'affichage des alertes, 739 00:48:30,790 --> 00:48:35,560 quelque chose devait arriver, mais il ne se produit pas. 740 00:48:35,560 --> 00:48:37,220 Comment pouvons-nous attrapons cela? 741 00:48:37,220 --> 00:48:41,280 Comment savons-nous que l'utilisateur a rejeté une vue d'alerte 742 00:48:41,280 --> 00:48:45,630 et déjà entré un numéro, parce maintenant rien ne se passe réellement. 743 00:48:45,630 --> 00:48:50,450 >> Eh bien, vous l'avez deviné à droite, la délégation. 744 00:48:50,450 --> 00:48:55,440 Donc, en plus de toutes ces déclarations, 745 00:48:55,440 --> 00:49:03,190 nous devons ajouter une nouvelle délégation à il a appelé UI affichage des alertes délégué. 746 00:49:03,190 --> 00:49:06,440 Alors que chaque simple interaction ou de l'événement 747 00:49:06,440 --> 00:49:10,190 que nous allons avoir en vue d'alerte de l'interface utilisateur 748 00:49:10,190 --> 00:49:14,100 va être manipulé par notre classe ainsi. 749 00:49:14,100 --> 00:49:26,297 >> Donc, en plus de cela, seront vue clic bouton d'alerte à l'index. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Ce est atteinte. 752 00:49:37,730 --> 00:49:42,020 Donc, dans ce cas, nous avons already-- nous avons donc 753 00:49:42,020 --> 00:49:46,210 découvert un protocole gérera l'événement lorsque 754 00:49:46,210 --> 00:49:51,320 nous cliquons sur le bouton Terminé sur l'affichage des alertes. 755 00:49:51,320 --> 00:49:55,976 Donc, chaque fois que nous rejeter la affichage des alertes, ce qui devrait se produire. 756 00:49:55,976 --> 00:49:57,350 Permettez-moi de le tester très rapidement. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Eh bien en fait, nous avons atteint ici. 759 00:50:19,300 --> 00:50:22,210 >> Donc, ici, ce que nous ne allons pas réellement obtenir est en fait 760 00:50:22,210 --> 00:50:43,120 obtenons the-- Donc, nous voulons sortir le texte que nous avons précédemment 761 00:50:43,120 --> 00:50:45,350 entré dans la vue d'alerte. 762 00:50:45,350 --> 00:50:48,505 Et sur la base du texte, nous sommes va afficher Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Cela se avère très rapidement si cela fonctionne ou non. 765 00:50:55,480 --> 00:50:59,476 Donc, dans ce cas, si nous entrée, disons, 10, nous devrions voir 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Très bien, nous avons un certain nombre ici. 768 00:51:05,210 --> 00:51:06,470 Il est assez bon. 769 00:51:06,470 --> 00:51:16,840 Maintenant, la dernière étape sera donc la être-- dernière étape, nous devons faire maintenant 770 00:51:16,840 --> 00:51:21,100 est juste un appel avec Mario sur la base du niveau d'entrée 771 00:51:21,100 --> 00:51:23,270 que nous avons mis en affichage des alertes. 772 00:51:23,270 --> 00:51:26,920 Nous avons donc besoin de convertir cette chaîne dans iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Débordement statique est très impressionnant. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Et ensuite nous appelons auto marioWithLevels valeur. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Voyons veux que effectivement travailler ou non. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Nous avons déjà donné une pyramide. 781 00:52:01,550 --> 00:52:04,785 Essayons de changer la hauteur. 782 00:52:04,785 --> 00:52:06,530 Qui fonctionne réellement. 783 00:52:06,530 --> 00:52:07,610 Ce est plutôt cool. 784 00:52:07,610 --> 00:52:10,420 Alors que maintenant vous pouvez simplement entrée la valeur que vous voulez. 785 00:52:10,420 --> 00:52:12,440 Disons simplement que quatre. 786 00:52:12,440 --> 00:52:14,260 Ce est assez impressionnant. 787 00:52:14,260 --> 00:52:17,090 Donc, ce est essentiellement un exemple très rapide 788 00:52:17,090 --> 00:52:23,170 pour savoir comment créer un projet dans le code de s et comment câbler vraiment rapidement 789 00:52:23,170 --> 00:52:26,220 certains événements et des fonctions très simples. 790 00:52:26,220 --> 00:52:28,840 >> Donc, la source va à mettre en ligne plus tard. 791 00:52:28,840 --> 00:52:33,400 Donc, si vous êtes intéressé dans la manière dont iOS Mario fonctionne, 792 00:52:33,400 --> 00:52:38,360 Je vais mettre exactement la même des projets sur le site Web de CS50 tard. 793 00:52:38,360 --> 00:52:41,260 Nous essentiellement fait avec le été, et avant que nous finissons 794 00:52:41,260 --> 00:52:45,190 Je veux juste vous indiquer les gars pour certaines ressources vraiment génial que 795 00:52:45,190 --> 00:52:47,550 sont disponibles en ligne. 796 00:52:47,550 --> 00:52:52,270 >> Évidemment la documentation d'Apple va être très utile. 797 00:52:52,270 --> 00:52:57,630 Mais en plus de cela, je ai surtout recommander des quatre sources, le code scolaires, 798 00:52:57,630 --> 00:53:02,120 maison de l'arbre, et AppCoda WWDC vidéos. 799 00:53:02,120 --> 00:53:07,270 école de code et de la maison de l'arbre sont deux sites Educatrices en ligne, 800 00:53:07,270 --> 00:53:10,210 qui se concentrent spécifiquement sur le génie logiciel. 801 00:53:10,210 --> 00:53:16,930 Surtout pour le code école, ils ont vraiment bon tutoriel sur iOS. 802 00:53:16,930 --> 00:53:19,550 >> Ce est un exemple très rapide pour elle. 803 00:53:19,550 --> 00:53:22,980 En fait, ils créent une très cute-- regarder ce petit mignons de l'iPhone 804 00:53:22,980 --> 00:53:24,920 mec là-bas, ce est assez impressionnant. 805 00:53:24,920 --> 00:53:31,010 Et la façon dont ils expliquent Objectif syntaxe de C est parfaitement clair. 806 00:53:31,010 --> 00:53:32,230 Maison de l'arbre est le même. 807 00:53:32,230 --> 00:53:34,660 Et AppCoda est un forum. 808 00:53:34,660 --> 00:53:38,130 Ce est en fait un blog qui a été exécuté par un C Objectif vraiment connu 809 00:53:38,130 --> 00:53:39,120 programmeur. 810 00:53:39,120 --> 00:53:43,950 Et tous ces tutoriels sont dans AppCoda assez courte et facile à mettre en œuvre, 811 00:53:43,950 --> 00:53:45,390 fortement recommandé. 812 00:53:45,390 --> 00:53:47,700 >> Et si vous êtes un développeur, certainement aller vérifier 813 00:53:47,700 --> 00:53:55,660 la façon dont les vidéos WWDC où vous pouvez en apprendre davantage sur la dernière programmation iOS 814 00:53:55,660 --> 00:53:58,250 techniques, des API et des bibliothèques. 815 00:53:58,250 --> 00:54:02,850 Donc, ce est à peu près pour le séminaire. 816 00:54:02,850 --> 00:54:03,820 Merci beaucoup. 817 00:54:03,820 --> 00:54:08,040 Et je espère que vous avez du plaisir créer votre propre application iOS. 818 00:54:08,040 --> 00:54:09,302