1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> 天城LIU:ねえ、方法です それは誰に行く? 3 00:00:13,590 --> 00:00:20,250 そして、これはiOSのアプリです Objective Cのセミナーのプログラミング。 4 00:00:20,250 --> 00:00:21,520 そして、私の名前は天城劉です。 5 00:00:21,520 --> 00:00:26,114 私は、今、ローウェルジュニアだ コンピュータサイエンスに集中する。 6 00:00:26,114 --> 00:00:28,030 したがって、このセミナーで私は今 あなたたちを教えるつもり 7 00:00:28,030 --> 00:00:30,770 アプリを作成する方法について少し。 8 00:00:30,770 --> 00:00:33,030 イェーイ、それのための興奮する。 9 00:00:33,030 --> 00:00:36,790 >> だから、私たちも、ダイビングを開始する前に 実際のプログラミング側に、 10 00:00:36,790 --> 00:00:41,840 ちょうど本当にすぐについてお話しましょう なぜあなたはiOSアプリを構築したいのでしょうか? 11 00:00:41,840 --> 00:00:43,940 なぜ、iOSのは、とても素晴らしいです? 12 00:00:43,940 --> 00:00:47,250 だから、最初の問題、第一 私たちのために非常に素晴らしいですもの、 13 00:00:47,250 --> 00:00:51,190 特にCS50として 学生は、そのiOSのです 14 00:00:51,190 --> 00:00:55,860 目的C.さてを使用しています、あります スウィフトと呼ばれる新しい言語、 15 00:00:55,860 --> 00:00:58,260 私たちはするつもりはない このセミナーではそれを使用。 16 00:00:58,260 --> 00:01:01,540 あなたはスウィフトに興味があるなら、そこに そのことについて独立したセミナーです。 17 00:01:01,540 --> 00:01:05,590 しかし、Objective Cのは基本的にあり C.意味のスーパーセット 18 00:01:05,590 --> 00:01:10,230 あなたがC言語で使用して、すべてができる Objective Cのに翻訳される 19 00:01:10,230 --> 00:01:11,630 非常に簡単に。 20 00:01:11,630 --> 00:01:15,730 >> あなたはその確かに、後で見るかもしれませんが いくつかの非常に基本的な構文は次のとおりである、ある 21 00:01:15,730 --> 00:01:19,790 基本的には全く同じ、 CとObjective C.だから、 22 00:01:19,790 --> 00:01:22,860 あなたはCS50をとっているので、 このアップまでのところ、あなたはすでに 23 00:01:22,860 --> 00:01:26,500 、少なくとも40%を目標Cを知っている。 24 00:01:26,500 --> 00:01:30,720 また、Appleは本当にがある iOS用堅牢なAPI。 25 00:01:30,720 --> 00:01:33,750 本当にクレイジーがたくさんあり​​ます 物事はあなたがそれを行うことができます。 26 00:01:33,750 --> 00:01:36,760 の一つは人です 実際にiOSアプリを作成しました 27 00:01:36,760 --> 00:01:40,600 車を制御するために、その かなり面白いです。 28 00:01:40,600 --> 00:01:42,610 おそらくヘリコプターは、よりエキサイティングです。 29 00:01:42,610 --> 00:01:47,020 しかし、それはどのように強力です iOSのAPIは、することができます。 30 00:01:47,020 --> 00:01:49,340 >> そして、あなたが持つかもしれないとして、 今、考え出した、 31 00:01:49,340 --> 00:01:53,000 スタックオーバーフローは、おそらくの1である 最も重要なオンラインリソース 32 00:01:53,000 --> 00:01:54,250 あなたに利用できる。 33 00:01:54,250 --> 00:01:58,090 そして、すべてのための良いニュース、 あなたはおそらくできる単一の問題 34 00:01:58,090 --> 00:02:01,840 あなたを構築しながら考える Objective Cの中で最終的なプロジェクト、 35 00:02:01,840 --> 00:02:05,910 スタックオーバーフロー答えがありそうです。 36 00:02:05,910 --> 00:02:07,420 それはちょうど素晴らしいです。 37 00:02:07,420 --> 00:02:12,780 それに加えて、 iOSのは本当にプラットフォームです 38 00:02:12,780 --> 00:02:16,260 あなたは巨大に達することができる場所 少しの努力で観客。 39 00:02:16,260 --> 00:02:20,170 それは、Androidを、ようではありません すべてがかなり断片化されます。 40 00:02:20,170 --> 00:02:22,540 >> すべてのiOSが統一される。 41 00:02:22,540 --> 00:02:25,920 そして、限り、あなたは作成するように iPhone用アプリ、 42 00:02:25,920 --> 00:02:31,260 あなたができる非常に簡単にポートのiPadへの、 iPadのミニ、または別のiPhoneのサイズ。 43 00:02:31,260 --> 00:02:33,050 これらはすべて、本当に便利です。 44 00:02:33,050 --> 00:02:36,430 そして、それは本当に良いことだ 友達に印加するため。 45 00:02:36,430 --> 00:02:38,920 あなただけのiPhoneを保持することができます と、ちょっとお友達に伝える 46 00:02:38,920 --> 00:02:40,250 これは私が作るアプリです。 47 00:02:40,250 --> 00:02:43,860 あなたはすべてのためにそれを行うことができます いいですデスクトップアプリ、。 48 00:02:43,860 --> 00:02:48,870 >> すべての権利、今のは、実際に取得させ 言語のObjective Cに 49 00:02:48,870 --> 00:02:52,910 では、なぜ私たちは始まらない いくつかの本当に基本的な構文。 50 00:02:52,910 --> 00:02:57,410 私は客観前に述べたように Cそれは、基本的にはCのスーパーセットです 51 00:02:57,410 --> 00:03:01,860 だから、基本的な構文がたくさんある 実際に全く同じ。 52 00:03:01,860 --> 00:03:06,150 変数を宣言し、 2つの変数を一緒に追加 53 00:03:06,150 --> 00:03:09,440 我々はマリオに行っているとまったく同じです。 54 00:03:09,440 --> 00:03:11,140 ここに新しい何もない。 55 00:03:11,140 --> 00:03:17,370 >> forループ同様に、下宿人 条件も同様である。 56 00:03:17,370 --> 00:03:22,370 あなたはちょうどあなたのようにループのためにできること マリオ[聞こえない]でやったしている。 57 00:03:22,370 --> 00:03:26,280 そして、あなたは条件を行うことができます まさにあなたのように 58 00:03:26,280 --> 00:03:29,240 以前のPセットで行ってきた。 59 00:03:29,240 --> 00:03:33,400 しかし、Objective Cの 完全にCではありません、 60 00:03:33,400 --> 00:03:36,640 そしてそのものがある 種類の奇妙なそれについてです。 61 00:03:36,640 --> 00:03:42,340 >> 最初のものはあなたがいる時ということである Cプログラミングをやって、あなたは一般的に呼び出す 62 00:03:42,340 --> 00:03:46,310 含めると、ライブラリ名。 63 00:03:46,310 --> 00:03:49,860 しかし、Objective Cの中には、そのインポートを呼び出します。 64 00:03:49,860 --> 00:03:53,100 基本的には、機能性を言って ちょうど異なった名前。 65 00:03:53,100 --> 00:03:55,940 そして、文字列がある 実際に少し奇妙な。 66 00:03:55,940 --> 00:03:58,250 あなたが最初にあることがわかります 一種の奇妙ですもの 67 00:03:58,250 --> 00:04:04,190 あなたはかなりweird--を有することである sorry--あなたはかなり奇妙なNSを持っている 68 00:04:04,190 --> 00:04:04,960 こっちに署名する。 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 そして、第二のもの それは一種の奇妙な 71 00:04:09,160 --> 00:04:14,090 あなたが前に看板を持っている 実際に文字列を宣言。 72 00:04:14,090 --> 00:04:19,209 だから、アットマーク、基本的意味 文字列が文字列であるだけでなく、 73 00:04:19,209 --> 00:04:20,880 実際にはオブジェクトである。 74 00:04:20,880 --> 00:04:22,780 私たちは説明するつもりだ その後でそうしない 75 00:04:22,780 --> 00:04:25,800 パニックあなたがいない場合は それが何を意味するかを理解しています。 76 00:04:25,800 --> 00:04:29,980 そして、コンソールへの印刷が少しある 異なるため、私たちはprintfのを呼び出すC言語で、 77 00:04:29,980 --> 00:04:33,350 しかしObjective Cの中で、我々は[聞こえない]を呼び出します。 78 00:04:33,350 --> 00:04:35,640 >> あなたはそれが何であるか疑問に思われるかもしれません。 79 00:04:35,640 --> 00:04:38,070 つまり、基本的にはprintfのです ただ異なる言語。 80 00:04:38,070 --> 00:04:41,370 全く同じ用法、 まったく同じ機能を提供します。 81 00:04:41,370 --> 00:04:44,060 まあそれはことが判明 Objective Cの実際 82 00:04:44,060 --> 00:04:50,040 ほとんどでNSの接頭辞を持って すべてが、すべての基本データ型、 83 00:04:50,040 --> 00:04:52,690 NSStringの、NSArrayを、NSDictionaryの。 84 00:04:52,690 --> 00:04:56,340 その理由は、NSいる 実際に次のステップを表し、 85 00:04:56,340 --> 00:04:59,980 その会社これは スティーブジョブズが設立し、 86 00:04:59,980 --> 00:05:03,960 同社は、これはどこに 言語のObjective Cが生まれている。 87 00:05:03,960 --> 00:05:06,140 だから、これは基本的に伝統です。 88 00:05:06,140 --> 00:05:09,010 私はそれは少し知っている 奇妙な、それはAppleの。 89 00:05:09,010 --> 00:05:16,840 >> そうであっても奇妙である何か それよりも関数の宣言である。 90 00:05:16,840 --> 00:05:22,600 これは私たちとは非常に異なっている C言語で参照、ため、ここで実際にそれ 91 00:05:22,600 --> 00:05:25,190 もうCのようには見えません。 92 00:05:25,190 --> 00:05:28,810 あなたは何によってhere--いる これは箇条書きではない方法で、 93 00:05:28,810 --> 00:05:30,690 これは、マイナス記号です。 94 00:05:30,690 --> 00:05:36,440 あなたは、マイナス記号括弧を持っている 無効にした後、関数名。 95 00:05:36,440 --> 00:05:38,450 我々あればちょうど言ってみましょう その後、Hello Worldのを持っている 96 00:05:38,450 --> 00:05:42,820 戻り値の型はvoidになる 私たちは何も返さないからです。 97 00:05:42,820 --> 00:05:44,680 >> 本当に奇妙な取得します あなたがいるときにということです 98 00:05:44,680 --> 00:05:49,580 複数のパラメータを有する その同じ関数に渡す 99 00:05:49,580 --> 00:05:53,870 ここに示すように、本当に奇妙になります。 100 00:05:53,870 --> 00:05:58,230 私たちは、メソッド名を持っている、 に呼ばれているAddInt [聞こえない] 101 00:05:58,230 --> 00:06:00,370 私たちは一つのパラメータを渡している。 102 00:06:00,370 --> 00:06:05,170 しかし、その後、私たちは持っている でより多くのメソッド名のコール。 103 00:06:05,170 --> 00:06:08,500 そして、とした後、我々は渡している 二番目のパラメータ。 104 00:06:08,500 --> 00:06:11,940 これは、実際には少し奇妙です しかし、これらすべての関数宣言 105 00:06:11,940 --> 00:06:14,770 これと同じパターンに従います。 106 00:06:14,770 --> 00:06:17,450 >> 私たちは、そもそもマイナス記号を持っている。 107 00:06:17,450 --> 00:06:21,550 マイナス記号はプラス記号かもしれない 時々方法の種類に基づいて、 108 00:06:21,550 --> 00:06:22,340 それは。 109 00:06:22,340 --> 00:06:25,000 この方法は、基本的に 関数の別の名前。 110 00:06:25,000 --> 00:06:26,760 そして、我々はするつもりだ その後でとき説明 111 00:06:26,760 --> 00:06:30,580 我々は、オブジェクトの話をしている 指向プログラミング。 112 00:06:30,580 --> 00:06:34,300 あなたが最初のリターンを指定する 括弧内のタイプ、 113 00:06:34,300 --> 00:06:37,450 その後にメソッド名が来る。 114 00:06:37,450 --> 00:06:40,310 あなたは、一つのパラメータを渡している。 115 00:06:40,310 --> 00:06:44,750 そして、あなたはより多くのパラメータを持っている場合 あなたは、メソッド名を拡張する必要があります 116 00:06:44,750 --> 00:06:46,770 と基本的にはより多くのここに何かを書く。 117 00:06:46,770 --> 00:06:48,090 >> それはあなたがほしい何である可能性があります。 118 00:06:48,090 --> 00:06:50,140 私たちのケースでは、とのです。 119 00:06:50,140 --> 00:06:56,160 しかし、あなたが言うことができる終わり、またはあるいは、または あなたが好きなABC本格的なバー、。 120 00:06:56,160 --> 00:06:59,500 そして、その後にあなたがしている パラメータbを渡す。 121 00:06:59,500 --> 00:07:01,750 これは本当に奇妙です 大会が、我々はされている 122 00:07:01,750 --> 00:07:05,800 Appleが欲しい理由を見に行く 非常に迅速にそれを行うには。 123 00:07:05,800 --> 00:07:10,530 それでは、どのように関数を呼び出すのですか? 124 00:07:10,530 --> 00:07:15,520 目的関数の呼び出し Cはまた、C.異なる 125 00:07:15,520 --> 00:07:18,170 >> 実際に、αを呼び出す Objective Cの関数 126 00:07:18,170 --> 00:07:21,030 あなたが誰かに話しているよりのようなものです。 127 00:07:21,030 --> 00:07:27,030 ここでは、自己を持っている オブジェクトと呼ばれます。 128 00:07:27,030 --> 00:07:33,830 あなたは基本的に言っている と言って、オブジェクトの自己の「Hello World!」を 129 00:07:33,830 --> 00:07:36,830 つまり、関数を呼び出す方法です。 130 00:07:36,830 --> 00:07:41,690 オブジェクトとメソッド名 互いに組み合わせる。 131 00:07:41,690 --> 00:07:49,600 そして、これはどこに奇妙な拡張機能です メソッド名のために実際に戦場に出る。 132 00:07:49,600 --> 00:07:52,150 >> の第二の例を見てみましょう。 133 00:07:52,150 --> 00:07:56,780 私達はちょうどと呼ばれるメソッドを定義した いるAddIntと何とか何とか何とか。 134 00:07:56,780 --> 00:08:00,066 この場合にはあなたが呼び出しているとき 特定の[?メッセージ?]それが起こっている 135 00:08:00,066 --> 00:08:02,035 と10:2セルフいるAddIntのように見える。 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 これは、英語のように聞こえる。 138 00:08:08,070 --> 00:08:11,980 機能ものの 関数の宣言は、奇妙です 139 00:08:11,980 --> 00:08:15,600 Objective Cの年代のポイント メソッド宣言パターン、 140 00:08:15,600 --> 00:08:18,830 あなたが呼び出している時ということです 関数やメソッド 141 00:08:18,830 --> 00:08:21,980 それは実際の英語のように聞こえるでしょう。 142 00:08:21,980 --> 00:08:25,270 だから、非常に直感的だ あなたがそれに入るに一度。 143 00:08:25,270 --> 00:08:28,740 >> 特にこの場合、 どこで基本的にすることができます 144 00:08:28,740 --> 00:08:33,010 関数名があることがわかり ソートの自体を文書化する。 145 00:08:33,010 --> 00:08:35,390 あなたがいずれかを必要としない より詳細な説明を確認します 146 00:08:35,390 --> 00:08:42,770 正確に何が起こっているのか、どのような 正確に一つのパラメータは、やって。 147 00:08:42,770 --> 00:08:48,470 それを超えて行く、それでは少し話をしましょう オブジェクト指向プログラミングについて少し。 148 00:08:48,470 --> 00:08:52,160 オブジェクト指向プログラミングで 基本的なプログラミングの1 149 00:08:52,160 --> 00:08:57,110 ある技術やパターン 客観C. Objective Cので使用される 150 00:08:57,110 --> 00:09:03,110 Objective Cの、ではないと呼ばれている C、本当に正当な理由のために。 151 00:09:03,110 --> 00:09:07,560 >> だから我々は入る前に、 Objective Cの構文、 152 00:09:07,560 --> 00:09:11,670 それでは本当にすぐに見てみましょう オブジェクトが正確に何である。 153 00:09:11,670 --> 00:09:15,480 我々は、おそらく何かをやった 、前のオブジェクトのようなもの 154 00:09:15,480 --> 00:09:19,780 あなたは、構造体と呼ばれている ツリーやリンクリストを実装する 155 00:09:19,780 --> 00:09:25,730 または[?てみてください。 ?]だから、それはだ 基本的に構造体のような、 156 00:09:25,730 --> 00:09:28,560 それははるかに強力に比べてだ。 157 00:09:28,560 --> 00:09:33,150 オブジェクトは、メソッドとプロパティを持っています。 158 00:09:33,150 --> 00:09:35,310 方法は基本的な機能である。 159 00:09:35,310 --> 00:09:39,480 基本的に機能する 特定のオブジェクトに固有。 160 00:09:39,480 --> 00:09:45,440 >> とプロパティは基本的に フィールドには、構造体で指定する。 161 00:09:45,440 --> 00:09:48,500 一つ一つのオブジェクトに対するだから、 我々はいくつかのプロパティを持っている 162 00:09:48,500 --> 00:09:53,160 それはいくつかの変数を持っている オブジェクトに固有のものです。 163 00:09:53,160 --> 00:09:57,170 そして、我々はいくつかの機能を持っている また、オブジェクトに固有のものです。 164 00:09:57,170 --> 00:10:01,180 と関数はメソッドと呼ばれ と変数はプロパティと呼ばれます。 165 00:10:01,180 --> 00:10:03,190 それはちょうど空想名前です。 166 00:10:03,190 --> 00:10:10,440 あなた事実ながら、一つ一つのビュー あなたがiOSアプリを開いている間は、参照してください。 167 00:10:10,440 --> 00:10:17,720 ちょうどTwitterまたはFacebookの言わせて、 あなたが見るすべての単一のビューがオブジェクトである。 168 00:10:17,720 --> 00:10:22,110 とにも全体のアプリです で開始するオブジェクト。 169 00:10:22,110 --> 00:10:25,340 非常に興味深いコンセプト。 170 00:10:25,340 --> 00:10:28,480 >> そして、なぜ我々は、オブジェクトをしたいです 指向プログラミング? 171 00:10:28,480 --> 00:10:33,530 だから、ときにすることを想像することができます プログラムは、それはかなり複雑になります。 172 00:10:33,530 --> 00:10:36,400 ちょうどあなたがいるときに言ってみましょう チェス盤を実装 173 00:10:36,400 --> 00:10:40,020 ロジックがしようとしている 本当に複雑である。 174 00:10:40,020 --> 00:10:43,280 あなたは、36種類を持っている ピース、その場合ので、あなた 175 00:10:43,280 --> 00:10:48,370 すべてのロジックを書きたい チェスで36の異なる部分、 176 00:10:48,370 --> 00:10:52,150 それは多くのことになるだろう 別の関数や変数。 177 00:10:52,150 --> 00:10:54,070 それは多くの問題だ。 178 00:10:54,070 --> 00:10:58,980 おそらくあなたは書くつもりだ 別の方法または異なる機能 179 00:10:58,980 --> 00:11:03,950 への作品のそれぞれについて、 正確に彼らが何をすべきかを制御します。 180 00:11:03,950 --> 00:11:08,830 >> しかし、あなたがオブジェクト指向ない場合 プログラミング、これらの作品のすべて 181 00:11:08,830 --> 00:11:12,440 に抽象化することができます 1つのオブジェクト。 182 00:11:12,440 --> 00:11:16,111 その目的は、いくつかの一般的なを持つことになります 作品のどのような種類のような特性、 183 00:11:16,111 --> 00:11:16,610 それを何ですか? 184 00:11:16,610 --> 00:11:17,740 それは何色ですか? 185 00:11:17,740 --> 00:11:19,480 それはどのように移動することができますか? 186 00:11:19,480 --> 00:11:24,660 そして、あなたが持っている方法で、大いに それの論理を簡素化。 187 00:11:24,660 --> 00:11:28,480 だから、本当に良い方法だ 複雑なプログラムを作るために、 188 00:11:28,480 --> 00:11:33,700 と階層関係 プログラム内で、非常にシンプル。 189 00:11:33,700 --> 00:11:36,800 私たちは見ることになるだろうとして なぜ非常に迅速にするとき 190 00:11:36,800 --> 00:11:39,660 私たちは実際にやっている 私たちが実際にいるときprogramming-- 191 00:11:39,660 --> 00:11:42,830 Sコードを実行 その後のセッションをプログラミングする。 192 00:11:42,830 --> 00:11:48,120 >> そのウェルに加えて、 オブジェクト指向プログラミング 193 00:11:48,120 --> 00:11:50,030 楽しいだけたくさんある。 194 00:11:50,030 --> 00:11:51,990 あなたは、独自のオブジェクトを設計することになった。 195 00:11:51,990 --> 00:11:56,080 あなたは何を設計することだ それは自分でのように見える。 196 00:11:56,080 --> 00:11:58,250 それへの正しい答えはありません。 197 00:11:58,250 --> 00:12:02,940 そして、それは完全に興味深いです。 198 00:12:02,940 --> 00:12:07,270 だから、オブジェクト指向プログラミングにおいて、 2基本的な概念 199 00:12:07,270 --> 00:12:10,130 クラスとインスタンスになります。 200 00:12:10,130 --> 00:12:13,570 クラスは、基本的に オブジェクトのテンプレート。 201 00:12:13,570 --> 00:12:18,070 そして、インスタンスは基本的に 1特定のオブジェクト。 202 00:12:18,070 --> 00:12:21,090 >> ちょうどあなたがクッキーを作っているとしましょう​​。 203 00:12:21,090 --> 00:12:24,800 この場合は、一つ一つの あなたが実際に終わるクッキー 204 00:12:24,800 --> 00:12:27,310 対象になるだろう。 205 00:12:27,310 --> 00:12:35,830 しかし、あなたが使用するクッキープレートが焼く すべてのクッキーは、クラスになります。 206 00:12:35,830 --> 00:12:37,880 クラスは、基本的にはテン​​プレートです。 207 00:12:37,880 --> 00:12:46,170 とインスタンスは、1つの特定になります そのクラスから作成されたオブジェクト。 208 00:12:46,170 --> 00:12:49,970 >> そして、インスタンスが作成されます クラス宣言に基づいて、 209 00:12:49,970 --> 00:12:56,760 我々は後のスライドで見るように。 210 00:12:56,760 --> 00:13:00,010 それでは、実際に本当にやらせる 簡単な例[聞こえない]。 211 00:13:00,010 --> 00:13:04,280 のは、我々は宣言しているとしましょう 猫のためのオブジェクト。 212 00:13:04,280 --> 00:13:07,930 オブジェクトはhave--必要があります Catクラスべき 213 00:13:07,930 --> 00:13:11,260 いくつかのプロパティとメソッドを持っている。 214 00:13:11,260 --> 00:13:17,300 プロパティべきはどのような クラスがhave--猫が持っている必要がありますか? 215 00:13:17,300 --> 00:13:20,580 >> 例えば、色、 年齢や品種、それら 216 00:13:20,580 --> 00:13:24,440 変数になるよう 各ネコに固有のものです。 217 00:13:24,440 --> 00:13:27,790 そして、それらはいくつかのものである 私たちは猫を記述するために使用すること。 218 00:13:27,790 --> 00:13:31,880 方法はどのような、 または猫は何ができるのでしょうか? 219 00:13:31,880 --> 00:13:37,160 いくつかの簡単な例はチェイスになる マウス、魚を食べるか、単にニャー。 220 00:13:37,160 --> 00:13:40,900 これは本当に速いです 猫のクラスの例。 221 00:13:40,900 --> 00:13:46,920 そして、実際に具体的な 猫のオブジェクトは、猫になります 222 00:13:46,920 --> 00:13:50,930 私たちは、指定場所 色、年齢や品種。 223 00:13:50,930 --> 00:13:53,790 >> その場合には、私たちの目的である もはやクラスもはや。 224 00:13:53,790 --> 00:14:00,010 私たちは、クラスからテンプレートをコピーし、 私たちは、それぞれの特定の情報を指定する 225 00:14:00,010 --> 00:14:04,510 その特定のオブジェクトへ それは独立したようにします。 226 00:14:04,510 --> 00:14:09,350 そして、あなたが呼び出しているとき オブジェクト内のメソッド、 227 00:14:09,350 --> 00:14:16,640 あなただけのオブジェクトで鳴き声を呼び出し、 その作成したばかりの猫です。 228 00:14:16,640 --> 00:14:19,020 >> おそらく、あなたがプリントアウトされます Hello World」のようなもの! 229 00:14:19,020 --> 00:14:20,000 ニャー。 " 230 00:14:20,000 --> 00:14:22,110 かなりかわいい。 231 00:14:22,110 --> 00:14:24,500 すべての権利、ちょうどしてみましょう いくつかの詳細に入る 232 00:14:24,500 --> 00:14:30,650 正確ことを何を参照してください。 iOSのプログラミングであることにつながる。 233 00:14:30,650 --> 00:14:36,500 だから、iOSのプログラミングですべての単一 クラスは、2つのファイルに実装される。 234 00:14:36,500 --> 00:14:41,420 1つのファイルは、ここにある インターフェイスと呼ばれている。 235 00:14:41,420 --> 00:14:45,300 別のファイルは、ここにある 実装と呼ばれている。 236 00:14:45,300 --> 00:14:48,890 >> 通常、インターフェース extension.hを持つことになります 237 00:14:48,890 --> 00:14:51,740 我々は、Cライブラリで見てきたように。 238 00:14:51,740 --> 00:14:56,340 と実装ファイルです extension.nを持っているつもり。 239 00:14:56,340 --> 00:14:57,260 それは奇妙なのようなものだ。 240 00:14:57,260 --> 00:15:01,270 しかし、誰があり、.C実際に.Nを意味します それらの間の根本的な違い 241 00:15:01,270 --> 00:15:02,100 2。 242 00:15:02,100 --> 00:15:06,650 この場合には、私たちがしていることがわかります オブジェクト:インタフェース、猫を宣言する。 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 これは、継承と呼ばれている。 245 00:15:13,760 --> 00:15:19,170 私たちは、基本的に継承している オブジェクトクラスから猫のクラス。 246 00:15:19,170 --> 00:15:24,790 だったので、すべてのプロパティとメソッド 以前にオブジェクトクラスで定義されている 247 00:15:24,790 --> 00:15:28,560 自動的に定義されます 猫のクラスでも同様。 248 00:15:28,560 --> 00:15:35,900 >> それに加えて、我々は色を定義する、 品種、年齢、三つの変数。 249 00:15:35,900 --> 00:15:39,360 それは実際のように見える あなたが前に行っているもの。 250 00:15:39,360 --> 00:15:41,770 これは、構造体のように見えます。 251 00:15:41,770 --> 00:15:44,950 つまり、基本的には構文です 構造体宣言のために、 252 00:15:44,950 --> 00:15:47,710 そしてそれは完全に正しい。 253 00:15:47,710 --> 00:15:51,825 そして、私は前に述べたことから、 違い構造体 254 00:15:51,825 --> 00:15:53,960 物体の一 根本的な違い 255 00:15:53,960 --> 00:15:59,080 オブジェクトは、メソッドを有することで、 構造体は、変数のみを有している。 256 00:15:59,080 --> 00:16:03,450 特性に加えて、またはそのように 我々は、オブジェクトのために作成した変数、 257 00:16:03,450 --> 00:16:05,700 我々はいくつかの方法を指定します。 258 00:16:05,700 --> 00:16:09,720 >> ちょうど私たちが持ってここにしましょう 二つの方法、1はニャーで、 259 00:16:09,720 --> 00:16:12,460 別の1はチェイスマウスである。 260 00:16:12,460 --> 00:16:18,600 我々は、おそらく渡ししたい 私たちの以前の方法に基づいてパラメータ 261 00:16:18,600 --> 00:16:20,440 宣言パターン。 262 00:16:20,440 --> 00:16:22,160 おそらく、マウスを渡すようにしたい。 263 00:16:22,160 --> 00:16:25,180 そして、あなたはおそらくしたいと思う 意味BOOLを返すために 264 00:16:25,180 --> 00:16:30,010 あなたの猫は正常に持っている場合 マウスを捕まえたりしない。 265 00:16:30,010 --> 00:16:33,170 >> これはインターフェイスですが、我々はできる 実際にインタフェースがわかり 266 00:16:33,170 --> 00:16:35,150 何もしない。 267 00:16:35,150 --> 00:16:40,800 それはちょうど何exists--プログラムに指示します 何が猫のクラスに存在する。 268 00:16:40,800 --> 00:16:43,640 だからためには 何かをするためのプログラム、 269 00:16:43,640 --> 00:16:46,680 我々は、実装ファイルを持っている必要があります。 270 00:16:46,680 --> 00:16:51,940 だからここ、私たちが最初にすることはある 明らかに、我々はインターフェイスをインポートします。 271 00:16:51,940 --> 00:16:56,470 我々は、インタフェースをインポートした後、 我々は、メソッドを定義します。 272 00:16:56,470 --> 00:17:00,150 >> ちょうどここでニャーとしましょう 単にプリントアウトするだろう 273 00:17:00,150 --> 00:17:01,740 "こんにちは世界!"コンソールに。 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 そして、実施後 ファイルは、我々はかなり完了です。 276 00:17:08,460 --> 00:17:14,530 これは基本的なクラスです 1クラスの宣言。 277 00:17:14,530 --> 00:17:19,970 だから今の質問は、になる どのように変数を宣言しますか? 278 00:17:19,970 --> 00:17:26,880 あなたが作成するクラスを使用する方法 Objective Cの中のオブジェクトがここに書かれている。 279 00:17:26,880 --> 00:17:30,730 >> あなたが最初にそれを指定する これは、猫のポインタである 280 00:17:30,730 --> 00:17:38,700 Objective Cの内のすべてのオブジェクトのため 最終的にはポインタとして実装されています。 281 00:17:38,700 --> 00:17:46,210 そして、あなたはそれらを呼び出す、クラスを呼び出す 基本的にはmallocでのalloc、として、 282 00:17:46,210 --> 00:17:51,220 あなたのオペレーティングシステムに伝える このオブジェクトのためのいくつかのメモリ空間を必要とする。 283 00:17:51,220 --> 00:17:55,780 その後、オブジェクトを持っている すでに、あなたはそれを初期化する。 284 00:17:55,780 --> 00:17:56,780 これは単なる慣習である。 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 私はそれが少し奇妙です知っているが、 これは、Appleがものをどのように実際です。 287 00:18:04,410 --> 00:18:07,130 >> プロパティをされている割り当て 実際にはかなり簡単。 288 00:18:07,130 --> 00:18:09,250 それは非常によく似ています あなたは時何をやっている 289 00:18:09,250 --> 00:18:13,780 あなたはいくつかの特定を割り当てている 構造体の内部にフィールド。 290 00:18:13,780 --> 00:18:16,830 あなただけの変数を持っている 、プロパティ名に名前を付け、 291 00:18:16,830 --> 00:18:20,140 そして、それに特定の値を割り当てる。 292 00:18:20,140 --> 00:18:24,120 そして、メソッドを呼び出すと、非常によく似ています。 293 00:18:24,120 --> 00:18:29,080 呼び出し方法がある 基本的に私は何の話 294 00:18:29,080 --> 00:18:32,390 客観C.内の任意のメソッドを呼び出すための 295 00:18:32,390 --> 00:18:36,660 >> あなたには、オブジェクトを渡している この場合は、それがmyCatになるだろう、 296 00:18:36,660 --> 00:18:42,490 あなたがメソッド名を渡している。 297 00:18:42,490 --> 00:18:47,130 あなたがオブジェクトに話しているかのように、 あなたがニャーすべきmyCat、。 298 00:18:47,130 --> 00:18:48,570 それはかなり面白いです。 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 その後、ものがある より本質的なデザインパターン 301 00:18:55,680 --> 00:18:59,940 我々はについて話をする必要があること 実際のSコードを取得する前に。 302 00:18:59,940 --> 00:19:03,300 そのデザインパターンが呼び出されます イベントには、プログラミングを駆動。 303 00:19:03,300 --> 00:19:09,660 これはおそらく、ほとんどの一つです iOSのプログラミングの基本的な考え方。 304 00:19:09,660 --> 00:19:14,410 >> だから、あなたはおそらく正確に何を知らない イベント駆動プログラミングは、ある 305 00:19:14,410 --> 00:19:16,990 しかし、それは本当に怖いではありません。 306 00:19:16,990 --> 00:19:20,400 さて、実際には、あなたが持っている すでにその前にやっ。 307 00:19:20,400 --> 00:19:24,894 これはおそらく、あなたがしたラインの一つである すでに最後の[聞こえない]で書かれた 308 00:19:24,894 --> 00:19:26,810 CS50の、 google.maps.event.addListener(マーカー、 309 00:19:26,810 --> 00:19:27,810 、「クリック」機能(){}):. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 あなたはこの行を呼び出すことによって、 基本的にコンピュータを伝える 312 00:19:37,620 --> 00:19:42,650 イベントが呼ばれるたびに、その 、マーカーで発生する「クリック」 313 00:19:42,650 --> 00:19:43,630 その関数を使用します。 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> これは非常に異なっている あなたはmario.cに何をすべきか。 316 00:19:50,950 --> 00:19:56,670 mario.cであなただけのプログラムを実行する 一度、それはあなたの出力が得られ、 317 00:19:56,670 --> 00:19:58,590 とすれば完了です。 318 00:19:58,590 --> 00:20:02,590 これらは、一種のようなものです ワンショットプログラム。 319 00:20:02,590 --> 00:20:05,830 イベント駆動型プログラム 非常に、非常に異なっている。 320 00:20:05,830 --> 00:20:10,230 Facebookが1であれば、の想像してみましょう ショットプログラムは、それが本当に良いではありません。 321 00:20:10,230 --> 00:20:13,750 あなただけのFacebookへ行く 一度、それを行っています。 322 00:20:13,750 --> 00:20:16,700 それはあなたにいくつかの出力を提供します あなたが戻ってそれをやったことがなかった。 323 00:20:16,700 --> 00:20:19,380 あなたはより多くの何かをやったことがなかった。 324 00:20:19,380 --> 00:20:23,880 >> だからここに、特に 我々が使用するパターンがある 325 00:20:23,880 --> 00:20:26,940 イベントドリブン、その結果 すべての機能します 326 00:20:26,940 --> 00:20:31,480 何に基づいてキャッチする イベントが起こった。 327 00:20:31,480 --> 00:20:34,670 たとえば、私たちは持っている場合 ボタンと私たちのように指定 328 00:20:34,670 --> 00:20:39,870 そのボタンがクリックされるたびに、その、 呼び出された関数呼び出しの "Hello World!」を 329 00:20:39,870 --> 00:20:47,810 私たちは本当にできる方法で 機能ロジックを管理する 330 00:20:47,810 --> 00:20:50,560 非常に柔軟な方法で流れる。 331 00:20:50,560 --> 00:20:55,840 ユーザーが行うか、関数を呼び出すことができます それは既に呼び出されている。 332 00:20:55,840 --> 00:20:59,900 これは、完全に、ユーザーが何をすべきかに基づいている。 333 00:20:59,900 --> 00:21:04,080 >> だから我々は、これがあることがわかります mario.cより実際にはるかに良い。 334 00:21:04,080 --> 00:21:07,190 そして、良いニュースは、それがあるということです 実際にはない新しいコンセプト。 335 00:21:07,190 --> 00:21:12,140 君たちはすでに行っている 最後の問題セットでその。 336 00:21:12,140 --> 00:21:16,640 だから、Objective Cの中にあります 三つの異なるダイアグラム 337 00:21:16,640 --> 00:21:19,030 イベント駆動型プログラミングのために。 338 00:21:19,030 --> 00:21:21,970 最初の図である ターゲットアクションと呼ばれる 339 00:21:21,970 --> 00:21:26,990 どこでボタンをバインド いくつかの機能を備えたプレス。 340 00:21:26,990 --> 00:21:31,590 あなたがクリックしたときにちょうど、言ってみましょう いくつかのボタンを押すと、いくつかの関数を呼び出す。 341 00:21:31,590 --> 00:21:33,620 これは非常に単純なターゲットアクションです。 342 00:21:33,620 --> 00:21:35,580 >> 第二のものである 実際に最も困難な1、 343 00:21:35,580 --> 00:21:38,450 それは、プロトコル上の委任と呼ばれています。 344 00:21:38,450 --> 00:21:41,800 私たちは説明するつもりだ 非常に詳細では後ほど。 345 00:21:41,800 --> 00:21:44,420 そして、第三の方法は、通知です。 346 00:21:44,420 --> 00:21:46,770 これは実際にはありません 非常に重要な限り 347 00:21:46,770 --> 00:21:50,920 私たちはチャンスので、心配しているように あなたは、通知を使用するつもりだこと 348 00:21:50,920 --> 00:21:53,310 あなたの最終的なプロジェクトではかなり低い。 349 00:21:53,310 --> 00:21:56,440 だから我々はその部分をスキップするつもりだ。 350 00:21:56,440 --> 00:21:59,460 >> そして、私たちはダイビングをするつもりだ プロトコル上の委任に。 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 だから、正確にプロトコルは何ですか? 353 00:22:04,470 --> 00:22:06,450 または委任は正確に何ですか? 354 00:22:06,450 --> 00:22:09,670 ので始まるするプロトコルについてお話しましょう​​。 355 00:22:09,670 --> 00:22:13,360 プロトコルは、イベントに過ぎない。 356 00:22:13,360 --> 00:22:19,230 しかし、これらのイベントが与えられている アップルによるあなたが開始します。 357 00:22:19,230 --> 00:22:22,640 例えば、私はないんだけど あなたのどのように多くの完全に確認してください 358 00:22:22,640 --> 00:22:27,930 男はAppleのオリジナルを使用 アプリのメールや連絡先、 359 00:22:27,930 --> 00:22:32,180 しかし、すべての時間は、あなたがスクロールする テーブルと特定のセルを押してください 360 00:22:32,180 --> 00:22:36,130 テーブルの上に、それはイベントです。 361 00:22:36,130 --> 00:22:38,330 >> そして、あなたがしたい場合は、 自分でそのイベント、 362 00:22:38,330 --> 00:22:40,410 それは実際には少し難しいです。 363 00:22:40,410 --> 00:22:44,880 だから、アップルも、あなたにそれを与えている あなただけの直接使用できるように、 364 00:22:44,880 --> 00:22:49,610 自分で何かをするイベント。 365 00:22:49,610 --> 00:22:52,980 プロトコルは実際にある 本当に、本当に広く使用されている 366 00:22:52,980 --> 00:22:58,320 で客観C.さてで 事実、一つ一つのアプリ 367 00:22:58,320 --> 00:23:00,870 何かがアプリのデリゲートをキャッチしています。 368 00:23:00,870 --> 00:23:06,330 繊細な内部の全てです アプリをロードするためのプロトコル。 369 00:23:06,330 --> 00:23:12,470 >> ちょうどそこにあるとしましょう このアプリのためのイベントは、負荷をしました。 370 00:23:12,470 --> 00:23:18,200 あなたがしたら何が起こるべき あなたがアプリを開いた後、アプリを作成し、 371 00:23:18,200 --> 00:23:22,630 あなたがアプリを閉じた後に、または後に あなたがスリープ状態にiPhoneを置く。 372 00:23:22,630 --> 00:23:27,480 これらには、持っているすべてのイベントです すでにあなたに与えられて。 373 00:23:27,480 --> 00:23:34,730 そして、もともとこれらの粒子内部 全く実装は存在しません。 374 00:23:34,730 --> 00:23:39,750 Appleは、この機能があることを語った いくつかのイベントが発生したときどうなる、 375 00:23:39,750 --> 00:23:44,380 しかし、あなたはそれで何をすべきか 機能は完全にあなた次第です。 376 00:23:44,380 --> 00:23:49,290 >> 代表団は、基本的に クラスを伝える 377 00:23:49,290 --> 00:23:53,060 あなたはこれらのプロトコルを処理する必要があること。 378 00:23:53,060 --> 00:23:55,340 それは少しだ 紛らわしいが、それは次のようになります 379 00:23:55,340 --> 00:23:59,380 我々が行うときより明確に アクション中のSコード。 380 00:23:59,380 --> 00:24:04,760 プロトコル上の委任は実際にある ある意味で非常に堅牢なメカニズム 381 00:24:04,760 --> 00:24:08,160 我々は委任を行う場合 特定のクラスに、 382 00:24:08,160 --> 00:24:12,400 私たちは本質的に処理することができます イベントのすべての種類 383 00:24:12,400 --> 00:24:17,040 我々が持っている任意のクラスを使用して、 非常に便利なツール。 384 00:24:17,040 --> 00:24:21,530 >> だから、1簡単な例のために プロトコル上の代表団 385 00:24:21,530 --> 00:24:24,120 私は話を何になります。 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 このプロトコルは、具体的に呼び出され のTableView [聞こえない] [役割 388 00:24:30,890 --> 00:24:35,480 [で?インデックス?] [?過去。 ?]だから、これAN あなたキャッチされることになるイベント 389 00:24:35,480 --> 00:24:39,710 実際に具体的なタップ あなたのTableViewのセル、 390 00:24:39,710 --> 00:24:43,570 ちょうどあなたのメールにしましょう または連絡先アプリで。 391 00:24:43,570 --> 00:24:48,180 >> 関数内であった もともと何もしない。 392 00:24:48,180 --> 00:24:51,950 機能にはありません デフォルトでは何でもする。 393 00:24:51,950 --> 00:24:55,540 しかし、あなたは指定することができます 関数が何をするか、 394 00:24:55,540 --> 00:24:59,610 あなたのアプリから欲しいものを与えられた。 395 00:24:59,610 --> 00:25:01,610 非常に便利なツール。 396 00:25:01,610 --> 00:25:06,840 そして、すべてのそれと 私は基本的に、言われている 397 00:25:06,840 --> 00:25:11,430 いくつかの非常に基本的な構文をカバーし、 Objective Cのための基本的な考え方 398 00:25:11,430 --> 00:25:15,860 プログラミング、我々はいくつかのコードを行うことができます。 399 00:25:15,860 --> 00:25:17,980 さらに多くのエキサイティング。 400 00:25:17,980 --> 00:25:21,070 そのように複数のコードは、実際に 少し圧倒 401 00:25:21,070 --> 00:25:23,330 あなたが初めてそれを開いたとき。 402 00:25:23,330 --> 00:25:26,640 >> One簡単なメモなので、あなたの場合 iOSの開発をやってみたい、 403 00:25:26,640 --> 00:25:29,630 私は非常にあなたは、Macを持ってお勧めします。 404 00:25:29,630 --> 00:25:33,930 上のiOS開発を行っているため Windowsは、本当に、本当に難しいです。 405 00:25:33,930 --> 00:25:37,560 それはなんとかだが、それは本当に難しいです。 406 00:25:37,560 --> 00:25:40,610 そして、あなたは間違いなくやる G編集を使用したくない。 407 00:25:40,610 --> 00:25:47,950 だから、Sコードで、我々は持っている いくつかの異なる領域。 408 00:25:47,950 --> 00:25:53,050 あなたが最初の開くコード あなたはナビゲーション領域が表示され、 409 00:25:53,050 --> 00:25:57,470 これは基本的にあなたのすべてを示して あなたの現在のプロジェクト内にあるファイル。 410 00:25:57,470 --> 00:26:03,590 >> あなたは、ツールバー領域を、持っている 基本的にビューを管理している、 411 00:26:03,590 --> 00:26:08,570 またはいくつかの小さなクイック Sコード自体についてのツール。 412 00:26:08,570 --> 00:26:11,140 これは、実際のエディタ領域である。 413 00:26:11,140 --> 00:26:15,900 このエリアは非常によく似たG編集で、 しかしG編集よりもはるかに良い。 414 00:26:15,900 --> 00:26:21,150 そして、この右の領域においては、 ユーティリティエリアと呼ばれる。 415 00:26:21,150 --> 00:26:27,170 エリアは、時本当に便利になる あなたがインタフェースを作成するか、指定している 416 00:26:27,170 --> 00:26:30,070 あなたのアプリのためにいくつかの簡単なセットアップ。 417 00:26:30,070 --> 00:26:34,570 >> そして、最後のエリアは、デバッグです。 418 00:26:34,570 --> 00:26:37,970 このエリアには、コンソールが含まれています。 419 00:26:37,970 --> 00:26:43,170 ですから、printfの言うたびに、 または、我々の場合のNSLog 420 00:26:43,170 --> 00:26:47,330 すべての結果は つもりはここで印刷される。 421 00:26:47,330 --> 00:26:48,260 大丈夫? 422 00:26:48,260 --> 00:26:52,090 私たちは本当にすぐに行うことができます推測 iOSのプログラミングのための例。 423 00:26:52,090 --> 00:26:54,220 そして、それでは実際にSコードを開いてみましょう。 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 だから、あなたはSコードを開くたびに、それはだ そのようなものを表示する予定。 426 00:27:01,346 --> 00:27:03,220 それはあなたを尋ねるために起こっている 何をしたいですか? 427 00:27:03,220 --> 00:27:06,830 あなたが何かを起動しますか 基本的にはランダム、遊び場、あなた 428 00:27:06,830 --> 00:27:11,250 ちょうどずにコードをテストすることができます 実際にアプリにコミットする。 429 00:27:11,250 --> 00:27:13,020 >> 新しいプロジェクトを作成しますか? 430 00:27:13,020 --> 00:27:16,660 または、続行しますか 既存のプロジェクトに取り組んで? 431 00:27:16,660 --> 00:27:20,270 我々のケースでは、つもりだ 新しいプロジェクトを作成します。 432 00:27:20,270 --> 00:27:22,980 だから、、S、本当にうれしいです コー​​ドは実際にはすでにあります 433 00:27:22,980 --> 00:27:26,820 あなたはいくつかのテンプレートが与えられた オブジェクトを作成するため。 434 00:27:26,820 --> 00:27:32,680 あなたがゲームをやってみたい場合は、コードをよ 実際にあなたのためのゲームのテンプレートがあり、 435 00:27:32,680 --> 00:27:36,890 ページベースのアプリケーションを持って、 タブベースのアプリケーション。 436 00:27:36,890 --> 00:27:39,280 このケースでは、つもり 非常に簡単な何かをする、 437 00:27:39,280 --> 00:27:43,230 私たちは使用するつもりだ 単一のビューアプリケーション。 438 00:27:43,230 --> 00:27:48,270 >> その後、あなたが呼び出したいだけで何 お使いの製品が、そして、あなたの名前は何ですか 439 00:27:48,270 --> 00:27:52,760 あなたの識別子は、何だと あなたはどのような言語を使っています。 440 00:27:52,760 --> 00:27:57,060 ここではしたくない コアデータを使って確認してください。 441 00:27:57,060 --> 00:28:00,170 Core Dataは、基本的にデータベース化iOSのです。 442 00:28:00,170 --> 00:28:05,360 あなたがコアデータ、Sを行う場合 コー​​ドを定義しようとしている 443 00:28:05,360 --> 00:28:07,710 あなたのためのより多くの複雑なクラス。 444 00:28:07,710 --> 00:28:12,740 だから、単純なすべてのものを維持するために、我々はしている ちょうどコアデータなしでやろうとして 445 00:28:12,740 --> 00:28:15,290 たった今。 446 00:28:15,290 --> 00:28:18,030 >> 私たちがあることを行っている問題 使用することは問題that--です 447 00:28:18,030 --> 00:28:23,770 私たちは、作成されようとしていること、私たちです 基本的にはCからマリオをインポートしたい 448 00:28:23,770 --> 00:28:25,437 iOSアプリに。 449 00:28:25,437 --> 00:28:26,645 それでは、マリオ·iOSのことを呼ぶことにしましょう​​。 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 もちろん、あなたが何を指定する あなたのプロジェクトに入れたい。 452 00:28:34,880 --> 00:28:37,870 そして、そこに私達は行く。 453 00:28:37,870 --> 00:28:41,390 >> だから、これは少しある 圧倒的な、しかし、これは実際には 454 00:28:41,390 --> 00:28:43,540 私たちはただのスライドで見た。 455 00:28:43,540 --> 00:28:49,710 そして、我々は今、最初に表示エリア 基本的には、プロジェクトの構成です。 456 00:28:49,710 --> 00:28:53,390 あなたがしたいので、すべてのもの プロジェクト、デバイスの種類、 457 00:28:53,390 --> 00:28:58,810 ちょうどデバイスの種類としましょう あなたのアプリ上に表示されたいですか? 458 00:28:58,810 --> 00:29:01,280 それは、iPhone、iPadやユニバーサルですか? 459 00:29:01,280 --> 00:29:04,660 そのため、デバイスの向き、すべてのこのようなもの。 460 00:29:04,660 --> 00:29:08,490 あまり重要ではない、 そうであるが、この可能性 461 00:29:08,490 --> 00:29:11,050 あなたが設定する場所です あなたのプロジェクト実際にあなたの場合 462 00:29:11,050 --> 00:29:15,180 アップルストアに展開する。 463 00:29:15,180 --> 00:29:20,420 >> すべての権利、見てみましょう 私たちのコードの中にある何か。 464 00:29:20,420 --> 00:29:22,360 それでは、ファイルナビゲーター見ていきましょう。 465 00:29:22,360 --> 00:29:30,140 これらは、すでにすべてのファイルです 非常に素晴らしい、テンプレートに付属している。 466 00:29:30,140 --> 00:29:35,980 だから我々はそれらのいずれかをクリックすると、 これは、それがどのように見えるかです。 467 00:29:35,980 --> 00:29:38,530 G編集に非常に似て。 468 00:29:38,530 --> 00:29:41,340 しかし、あなたがいることがわかります シンタックスハイライ​​トは、おそらくです 469 00:29:41,340 --> 00:29:42,780 少しよりよい。 470 00:29:42,780 --> 00:29:45,610 そして、それは実際にはるかだ G編集より強力な。 471 00:29:45,610 --> 00:29:49,970 そして、あなたは、自動完了することができます あなたのために多くのこと、 472 00:29:49,970 --> 00:29:52,370 我々は非常に迅速に見るように。 473 00:29:52,370 --> 00:29:54,100 >> のは、同様にデバッグする領域を開いてみましょう。 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 すべての権利、私たちが見ることができるように、 コンソールはここです。 476 00:30:07,000 --> 00:30:13,840 これは、あなたが場所を確認しようとしているものです あなたはprintfのか何かをnslogingにいる。 477 00:30:13,840 --> 00:30:17,155 だから、さらに苦もなく、実際にしてみましょう アプリをコンパイルし、何が起こるかを参照してください。 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 するための一つの基本的な特徴 複数のコードは、その複数のコードである 480 00:30:23,410 --> 00:30:25,850 iPhoneシミュレータが付属しています。 481 00:30:25,850 --> 00:30:29,820 だから、持っている必要はありません あなたのプロジェクトをしようとするiPhone、 482 00:30:29,820 --> 00:30:34,440 Sコードは、のためにそれをシミュレートすることができます あなた、私たちは今、見ることができるように。 483 00:30:34,440 --> 00:30:36,406 >> それはかなりいいです。 484 00:30:36,406 --> 00:30:38,640 それは少しを取っている コンパイルする時のビット 485 00:30:38,640 --> 00:30:43,040 と基本的に私たちは持っている 空のアプリケーション、 486 00:30:43,040 --> 00:30:44,640 その実際に何もしません。 487 00:30:44,640 --> 00:30:46,175 しかし、それはコンパイルされます。 488 00:30:46,175 --> 00:30:47,380 それはかなり素晴らしいです。 489 00:30:47,380 --> 00:30:50,200 それは、ハァッCよりもはるかに良いの? 490 00:30:50,200 --> 00:30:52,130 その後すべての権利、レッツ 何かを追加しよう。 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 少しはある一つのファイル ここに奇妙なはストーリーボードと呼ばれている。 493 00:31:02,650 --> 00:31:08,020 これは、実際に大きい Sコードのための素晴らしい機能。 494 00:31:08,020 --> 00:31:14,170 Sコードでは、あなたが実際にドラッグすることができますので、 インターフェイス上に要素をドロップ 495 00:31:14,170 --> 00:31:17,430 それが直接表示されます。 496 00:31:17,430 --> 00:31:18,055 のはそれを試してみましょう。 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> 私たちは、ここでの "Hello World !!!"ラベルをドロップ 499 00:31:27,236 --> 00:31:29,740 我々はそれを中心にすることができます。 500 00:31:29,740 --> 00:31:30,970 かなりクール。 501 00:31:30,970 --> 00:31:33,915 それでは、この停止シミュレーションを実行してみましょう。 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 ここでは、「Hello Worldの!!! "持っている 504 00:31:38,700 --> 00:31:40,810 私たちも、まだコーディングをしませんでした。 505 00:31:40,810 --> 00:31:42,750 一体は何が起きているのですか? 506 00:31:42,750 --> 00:31:45,880 これはどのように強力です Interface Builderはすることができます。 507 00:31:45,880 --> 00:31:48,030 誰かがさえていることを言った あなたができるおそらく 508 00:31:48,030 --> 00:31:52,800 ライトせずにアプリを完了 おそらく、コード1000行 509 00:31:52,800 --> 00:31:54,820 ただI​​nterface Builderのを使用します。 510 00:31:54,820 --> 00:31:59,680 しかし、それはおそらくありません それを行うための最善の方法。 511 00:31:59,680 --> 00:32:01,670 >> それでは、実際にコーディングに取り掛かるてみましょう。 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 ファイルの構造だから、 実際に本当に面白いです 514 00:32:08,330 --> 00:32:15,610 なぜなら、あなたが見る可能性がある、そこに どこにも主な機能はありません。 515 00:32:15,610 --> 00:32:17,466 参照してください? 516 00:32:17,466 --> 00:32:19,340 前に述べたように、 あなたはこのことを確認できます 517 00:32:19,340 --> 00:32:22,830 実装ファイルです 特定のクラスのために。 518 00:32:22,830 --> 00:32:25,690 しかし、誰メインのどこがありません。 519 00:32:25,690 --> 00:32:27,490 だからここで主なのですか? 520 00:32:27,490 --> 00:32:31,970 実際には、そこにメインですが、 主が実際にあなたから隠されている。 521 00:32:31,970 --> 00:32:34,560 メインはこちらです。 522 00:32:34,560 --> 00:32:37,120 それはお馴染みに見えます。 523 00:32:37,120 --> 00:32:41,000 >> そこで、基本的に何のiOS メインの内側にやっている 524 00:32:41,000 --> 00:32:43,540 いつでもメインであることである 基本的にはある、と呼ばれる 525 00:32:43,540 --> 00:32:49,000 アプリは、それを実行されるたびに AppDelegateと呼ばれるオブジェクトを作成します。 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 私は前に述べたように、全体 アプリは、それ自体で実際にオブジェクトです。 528 00:32:57,350 --> 00:33:02,270 基本的に、このようにそのように iOSアプリは、コンパイラを語っている 529 00:33:02,270 --> 00:33:05,540 そのOK、私が作成するつもりです AppDelegateと呼ばれる製品、 530 00:33:05,540 --> 00:33:07,620 それは私のアプリになるだろう。 531 00:33:07,620 --> 00:33:09,640 だから、行く必要がある そのAppDelegateを通して 532 00:33:09,640 --> 00:33:12,040 そしてその男はやっているかを見る。 533 00:33:12,040 --> 00:33:14,850 私の仕事は私のために行われます。 534 00:33:14,850 --> 00:33:22,070 >> そして、AppDelegateにあなたはそれを見ることができます いくつかの本当に奇妙な関数があり、 535 00:33:22,070 --> 00:33:25,290 よく、実際に方法は、 Appleはすでにあなたを与えている。 536 00:33:25,290 --> 00:33:27,464 これは何? 537 00:33:27,464 --> 00:33:31,010 これらは、実際にはプロトコルです 私が話していたことを。 538 00:33:31,010 --> 00:33:35,670 したがって、これらはそのアップルイベントです で開始するあなたを与えている。 539 00:33:35,670 --> 00:33:38,050 何もいくつかではありません 今の機能が、 540 00:33:38,050 --> 00:33:40,820 しかし、我々は初期化したい場合は、 我々のアプリのために何か 541 00:33:40,820 --> 00:33:46,140 表示に入る前に すべてのビュー、我々はここでそれを行う。 542 00:33:46,140 --> 00:33:51,150 >> あなただけの名前を読むことができると私は推測する イベントは、実際には本当に明確である。 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 だから今メインで作成しています AppDelegateのためのオブジェクト。 545 00:33:58,350 --> 00:34:05,220 そして、何AppDelegateは何をするつもりされている 実際にも、あなたから隠されている。 546 00:34:05,220 --> 00:34:09,250 AppDelegateが起動しようとしている のViewControllerの在庫をロードする。 547 00:34:09,250 --> 00:34:13,170 だから、基本的に開始する予定だ あなたが持っているすべてのビューをロードする 548 00:34:13,170 --> 00:34:17,500 ちょうどビューをレンダリング 階層に基づいて。 549 00:34:17,500 --> 00:34:21,280 >> この場合には、我々は唯一持っている ここにある一つのビュー、。 550 00:34:21,280 --> 00:34:25,060 だから、唯一の図である それが呼ばれるようになるだろう。 551 00:34:25,060 --> 00:34:28,159 のViewControllerロジックはここです。 552 00:34:28,159 --> 00:34:32,159 これは実際のコードです 我々だけで見たビューを制御します。 553 00:34:32,159 --> 00:34:33,679 すべての権利、のがここで何かをしてみましょう。 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 だから、viewDidLoadのは、イベントのように聞こえる、 実際にはこれはデリゲートである場合、 556 00:34:50,560 --> 00:34:52,500 これは、プロトコルです。 557 00:34:52,500 --> 00:34:56,350 >> だから、どのようなビューがロードされ、 関数内ですべてのもの 558 00:34:56,350 --> 00:34:57,920 呼び出されます。 559 00:34:57,920 --> 00:35:02,840 このケースでは、ハロー」を参照してください必要があります 天城! "我々はプログラムを実行した場合。 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 それは少し遅いなってきた ストーリーボードファイルをコンパイル。 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 さて実際に、我々はそれのために出力が表示されません。 564 00:35:18,190 --> 00:35:20,720 それはかなりクールだ。 565 00:35:20,720 --> 00:35:22,000 それでは、実際にマリオをやらせる。 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 私が定義するつもりです 非常に迅速に機能します。 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels:(INT)レベルの結果。 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> すべての権利、これは実際に素晴らしいです Sコードの自動補完の機能。 572 00:36:06,410 --> 00:36:10,680 だから、あなたが書いて入力する入力すると、 それは既にテンプレートを与えている 573 00:36:10,680 --> 00:36:12,325 あなたのために、かなりクールである。 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 それは本当になるはずです 皆さんに馴染み。 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 申し訳ありませんが、それは私のせいです。 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 すべての権利、涼しい。 580 00:37:18,120 --> 00:37:22,710 そのロジックは本当におなじみのはずです あなたたち、特にちょうどマリオへ。 581 00:37:22,710 --> 00:37:26,140 >> しかし、我々は今にプリントアウトします コンソール毎回、 582 00:37:26,140 --> 00:37:29,280 我々は何とか維持したいので、 我々が印刷しているもののトラック。 583 00:37:29,280 --> 00:37:31,810 私たちは、使用するつもりだ 何とか後で結果、 584 00:37:31,810 --> 00:37:35,010 プリントを表示するには 外のユーザーになる。 585 00:37:35,010 --> 00:37:37,730 だからではなく、我々だけだ すべてをnslogging、 586 00:37:37,730 --> 00:37:42,410 我々はすべてを保存しているもの 関数呼び出しの結果に、 587 00:37:42,410 --> 00:37:44,070 しかし論理はまったく同じです。 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 私たちはそれを終了した後、我々 ちょうど私達の結果を印刷する。 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> そして、ここではなく、私のプリントアウト 名前は、私たちは関数を呼び出すするつもりだ。 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 何が起こるか見てみましょう。 594 00:38:18,090 --> 00:38:21,240 おっと、明らかに。 595 00:38:21,240 --> 00:38:24,320 我々は素晴らしいを持っています 外ここで少しピラミッド。 596 00:38:24,320 --> 00:38:28,370 これは基本的にCで、我々だけだ どこで関数を呼び出す操作 597 00:38:28,370 --> 00:38:30,010 とどのように機能は次のようになりません。 598 00:38:30,010 --> 00:38:31,560 別のものは何もありません。 599 00:38:31,560 --> 00:38:34,040 しかし、これは実際にある ここでは非常にエキサイティングではない、 600 00:38:34,040 --> 00:38:37,500 私たちは見ていないので、 iPhoneアプリから何か。 601 00:38:37,500 --> 00:38:42,120 >> だから、実際にapp-- iPhoneを持っている場合 あなたが実際にマリオのiOS権利を持っている場合 602 00:38:42,120 --> 00:38:45,080 今、あなたがつもりはない その何かを見るために 603 00:38:45,080 --> 00:38:49,450 ので、マリオとは何を持って コンソールにすべてのそれらの出力 604 00:38:49,450 --> 00:38:51,620 ユーザーから隠されている。 605 00:38:51,620 --> 00:38:53,850 これは、あなたが見るものです これの "Hello World!"です 606 00:38:53,850 --> 00:38:55,720 良くない。 607 00:38:55,720 --> 00:39:03,090 今度は、ユーザーが表示するために試してみましょう まさに私たちがプリントアウトしている。 608 00:39:03,090 --> 00:39:06,000 だから我々はもうラベルを付ける必要はありません。 609 00:39:06,000 --> 00:39:09,800 それでは試してみましょうと、何かを把握 有用である可能性、他。 610 00:39:09,800 --> 00:39:12,140 >> 1は実際にあります と呼ばれている要素 611 00:39:12,140 --> 00:39:16,460 テキストフ​​ィールド、できた 私たちに非常に役立つこと。 612 00:39:16,460 --> 00:39:19,880 それは基本的に地域を表示 テキストを編集することができる。 613 00:39:19,880 --> 00:39:22,320 だから、本当に便利になります。 614 00:39:22,320 --> 00:39:23,810 今度は、それをドラッグ&ドロップしてみましょう。 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 うわー、私たちはテキストビューを持っている 我々の見解で、本当に空想。 617 00:39:32,670 --> 00:39:35,430 それは少し大きすぎる。 618 00:39:35,430 --> 00:39:38,150 のは、それが小さく作ってみましょう。 619 00:39:38,150 --> 00:39:40,290 中央にそれを入れてください。 620 00:39:40,290 --> 00:39:43,760 同様にそれを小さくする。 621 00:39:43,760 --> 00:39:50,110 >> 今、私たちは、テキストビューを持っている我々はできる 我々の最終結果を表示するために使用する。 622 00:39:50,110 --> 00:39:52,860 しかし、今、それはだ 確かに仕事に行くのではない 623 00:39:52,860 --> 00:39:56,970 no--があるので ViewControllerをちょうど私達 624 00:39:56,970 --> 00:40:03,010 ことを認識していません定義された そこにテキストビューがあります。 625 00:40:03,010 --> 00:40:06,550 だから我々は何とかする必要が テキストビューをリンク我々だけ 626 00:40:06,550 --> 00:40:11,660 そのクラスを使用して作成 すでに私たちと一緒に来ている。 627 00:40:11,660 --> 00:40:14,860 >> 私たちはそれを行う方法です 実際に本当に魔法。 628 00:40:14,860 --> 00:40:18,190 だから、ストーリーボードを開く。 629 00:40:18,190 --> 00:40:22,220 ある特殊な[聞こえない] [と呼ばれる?アシスタント?] [聞こえない]。 630 00:40:22,220 --> 00:40:25,190 あなたがそれをクリックすると、それはだ 二つのファイルを開くに行く。 631 00:40:25,190 --> 00:40:29,425 一つのクラスであり、他方で それに対応する図である。 632 00:40:29,425 --> 00:40:31,920 それは非常に、非常に便利です。 633 00:40:31,920 --> 00:40:35,950 そして、ちょうど.hファイルを通過してみましょう。 634 00:40:35,950 --> 00:40:39,110 制御は、これは[聞こえない]論理である。 635 00:40:39,110 --> 00:40:47,280 プレスコントロールとドラッグ 宣言へのテキストビュー。 636 00:40:47,280 --> 00:40:48,780 私たちは、そのoutputViewを呼ぶつもりです。 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 接続します。 639 00:40:53,670 --> 00:40:59,420 そこでここでは、新規に宣言している 私たちのViewControllerクラスのプロパティ。 640 00:40:59,420 --> 00:41:02,300 そして、新しいプロパティ 単なるテキストである 641 00:41:02,300 --> 00:41:05,000 我々は、インタフェースの建物内に作成しました。 642 00:41:05,000 --> 00:41:07,990 そのように私たちができるよう アクセスのすべてのデータ 643 00:41:07,990 --> 00:41:13,630 内部ですべてを操作する 驚くばかりである出力ビュー、。 644 00:41:13,630 --> 00:41:19,260 >> だから私たちの実際のコードで、 のはそれで何かをやらせる。 645 00:41:19,260 --> 00:41:23,810 我々は、印刷のようなものですので、この時間 マリオのための最終結果から、 646 00:41:23,810 --> 00:41:28,020 我々は何をログに記録しないでね。 647 00:41:28,020 --> 00:41:30,080 私たちは保つことができることを意味 loggingステートメント。 648 00:41:30,080 --> 00:41:41,490 それに加えて、我々 読み出しを送る我々だけ 649 00:41:41,490 --> 00:41:47,622 出力ビューに作成し、その 先ほど作成したのTextView UIです。 650 00:41:47,622 --> 00:41:48,746 それでは、何が起こるか見てみましょう。 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 うわー。 653 00:41:56,620 --> 00:41:59,130 私たちは今、アプリでピラミッドを持っている。 654 00:41:59,130 --> 00:42:06,720 >> だから、ユーザーがいるので私たちの出力を見ることができます 私たちは私たちのコードからの出力をコピーした 655 00:42:06,720 --> 00:42:08,045 我々のインタフェースに関する。 656 00:42:08,045 --> 00:42:10,950 それはかなり良いことだ。 657 00:42:10,950 --> 00:42:14,990 それは実際にそのではありません 我々はcan--ためエキサイティング 658 00:42:14,990 --> 00:42:18,250 すべてのアプリがされてやっている あなたにピラミッドを示す、 659 00:42:18,250 --> 00:42:20,520 そしてあなたがそれについてできることは何もありません。 660 00:42:20,520 --> 00:42:22,330 それは特にエキサイティングではありません。 661 00:42:22,330 --> 00:42:27,840 だから今のボタンを作ってみよう それは、ビューがクリアされます。 662 00:42:27,840 --> 00:42:30,290 ボタンが参考になると思われます。 663 00:42:30,290 --> 00:42:33,270 ドラッグアンドドロップ。 664 00:42:33,270 --> 00:42:33,900 ボタン1。 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 ボタン2。 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> だから我々は、左をクリックしたとき ボタン、ビューはクリアする必要があります。 669 00:42:52,052 --> 00:42:53,635 画面上の何もないはずです。 670 00:42:53,635 --> 00:42:56,970 そして、我々はクリックしたとき 右ボタン、マリオ、 671 00:42:56,970 --> 00:42:59,740 ビューが再び表示されるようになるだろう。 672 00:42:59,740 --> 00:43:05,510 だから、このように私たちもやる 魔法のようなもの、コントロールしてドラッグ 673 00:43:05,510 --> 00:43:08,740 クラス宣言へ アシスタントでdirector-- 674 00:43:08,740 --> 00:43:11,600 アシスタントビューアで。 675 00:43:11,600 --> 00:43:18,620 このケースでは、指定している それは行動する必要があること。 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 >> そこでここでは、既に作成している clearMarioと呼ばれるアクション、 679 00:43:26,830 --> 00:43:34,210 コー​​ルされる方法がある 私たちは、クリアボタンを押すたびに。 680 00:43:34,210 --> 00:43:41,030 だから私たちの実際のコードで、ちょうどしてみましょう 出力テキストおよび出力ビューを置く 681 00:43:41,030 --> 00:43:44,620 何に、とそのように それは明確にすることが表示されます。 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 それに加えて、の作成してみましょう runMarioと呼ばれる別の方法。 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 ああ申し訳ありませんが、それは財産であってはならない。 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 すべての権利、すべきである 同様に行動すること。 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> そして、その関数があるとき と呼ばれる、私たちはマリオ10を実行します。 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 うまくいけば、それは問題になります。 692 00:44:39,780 --> 00:44:41,120 それは、コンパイルしていますか? 693 00:44:41,120 --> 00:44:43,920 はい。 694 00:44:43,920 --> 00:44:45,090 今、私たちは、ビューを持っている。 695 00:44:45,090 --> 00:44:46,560 我々は出力を持っている。 696 00:44:46,560 --> 00:44:50,040 そして、ちょうど何が起こるか見てみましょう。 697 00:44:50,040 --> 00:44:52,590 それは逝ってしまった。 698 00:44:52,590 --> 00:44:54,500 それは、再びです。 699 00:44:54,500 --> 00:44:57,620 そこでここでは、指定されている 関数の種類を 700 00:44:57,620 --> 00:45:00,400 ときに呼び出される 私たちは何かを入力、 701 00:45:00,400 --> 00:45:03,160 私たちは、特定のボタンを押したとき。 702 00:45:03,160 --> 00:45:07,890 これは基本的に ターゲットアクションスキーム 703 00:45:07,890 --> 00:45:12,510 イベント駆動 客観Cでプログラミング 704 00:45:12,510 --> 00:45:15,030 >> それに加えて、 それは非常にエキサイティングではありません 705 00:45:15,030 --> 00:45:19,810 私たちは本当に変更できないため、 ピラミッドはどのように高くなり、 706 00:45:19,810 --> 00:45:23,640 私たちは、おそらく何とかしたい ユーザからの入力を受ける 707 00:45:23,640 --> 00:45:29,490 との高さを変更する 彼らは何の出力に基づいてピラミッド。 708 00:45:29,490 --> 00:45:32,900 だから我々はそれをやろうとしている。 709 00:45:32,900 --> 00:45:38,720 だから我々はrunMarioを呼ぶこの時、 私たちは直接マリオを呼び出すことはありません。 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 この1のタイトル。 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> デリゲート。 714 00:46:23,700 --> 00:46:25,160 これは非常に興味深いです。 715 00:46:25,160 --> 00:46:26,720 デリゲートとは何ですか? 716 00:46:26,720 --> 00:46:28,950 私はここに自己を置くつもりです。 717 00:46:28,950 --> 00:46:31,038 そして、私たちは見ることになるだろう 何それは後を意味します。 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 そこでここでは、基本的に作成している UIの警告と呼ばれる特定のインスタンス 720 00:46:51,120 --> 00:46:52,210 ビュー。 721 00:46:52,210 --> 00:46:54,440 UIのアラートビューがある 基本的に何をでしょう 722 00:46:54,440 --> 00:46:58,940 毎回何かポップを参照してください。 アップと入力をお願いします、 723 00:46:58,940 --> 00:47:03,080 あなたがしようとしている時に何が起こるかのような アプリストア上で何かを購入する。 724 00:47:03,080 --> 00:47:14,250 >> それに加えて、あなたの後に それを作成し、私たちは、アラートが表示されます。 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 すべての権利、ちょうどすぐにしてみましょう テストは、その仕事やしません。 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 それは非常にクールだ。 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 それでは、実際に作成してみましょう UIの警告のための入力フィールド。 731 00:47:59,120 --> 00:48:01,170 これは、我々はそれを行う方法です。 732 00:48:01,170 --> 00:48:07,490 そして、我々は持っている必要があります アラートの入力ビュー。 733 00:48:07,490 --> 00:48:09,020 非常にクール。 734 00:48:09,020 --> 00:48:12,330 ちょうど10を言ってみましょう。 735 00:48:12,330 --> 00:48:14,900 >> それは右の何もしてないです 今実際にあるため、コール 736 00:48:14,900 --> 00:48:17,770 マリオを実行するための変化しなかった。 737 00:48:17,770 --> 00:48:23,470 だから、これは少しになりました ビット奇妙なときはいつでも理由 738 00:48:23,470 --> 00:48:30,790 私たちは、いつでも私たちを下のボタンを押してください アラートビューにボタンを押すと、 739 00:48:30,790 --> 00:48:35,560 何かが起こるはず、 それは起こりません。 740 00:48:35,560 --> 00:48:37,220 我々はそれをどのようにキャッチしますか? 741 00:48:37,220 --> 00:48:41,280 どのように我々は、ユーザがいることを知っている アラートビューを却下した 742 00:48:41,280 --> 00:48:45,630 すでにので、番号を入力 今は何も、実際には起こっていないだ。 743 00:48:45,630 --> 00:48:50,450 >> さて、あなたは推測しているかもしれません それは右、委任。 744 00:48:50,450 --> 00:48:55,440 すべてに加えてそのように これらの宣言、 745 00:48:55,440 --> 00:49:03,190 私たちは、新しい委任を追加する必要があります それは、UIのアラートビューのデリゲートと呼ばれる。 746 00:49:03,190 --> 00:49:06,440 一つ一つのように、 相互作用またはイベント 747 00:49:06,440 --> 00:49:10,190 我々は、必要があるとしていること UIアラートを望む 748 00:49:10,190 --> 00:49:14,100 処理されようとしている 同様に私たちのクラスによる。 749 00:49:14,100 --> 00:49:26,297 >> だから、それに加えて、となります アラートビューは、インデックスのボタンをクリックします。 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 これが達成される。 752 00:49:37,730 --> 00:49:42,020 だから、その場合には、我々は持っている already--私たちは持っている 753 00:49:42,020 --> 00:49:46,210 プロトコルを見出し、その ときに、イベントを処理します 754 00:49:46,210 --> 00:49:51,320 私たちは、[完了]ボタンをクリックします アラートビューに。 755 00:49:51,320 --> 00:49:55,976 だから、毎回私たちは却下 アラートビュー、これは起こるべき。 756 00:49:55,976 --> 00:49:57,350 私はちょうど非常に迅速にそれをテストしてみましょう。 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 さて実際に、私たちはここに達しています。 759 00:50:19,300 --> 00:50:22,210 >> だからここに、私たちはしません 実際に実際に取得 760 00:50:22,210 --> 00:50:43,120 だから我々は取得したいthe--取得 我々は以前に持っているテキスト 761 00:50:43,120 --> 00:50:45,350 アラートビューに入った。 762 00:50:45,350 --> 00:50:48,505 また、テキストに基づいて、私たちはしている マリオを表示しようとして。 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 これは非常に迅速に判明 それが実際に動作するかどうか。 765 00:50:55,480 --> 00:50:59,476 だから、その場合、私たちは入力の場合、 私たちは10が表示され、10、の言わせて。 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> 非常に良い、私たちはここ数を持っています。 768 00:51:05,210 --> 00:51:06,470 それはかなり良いことだ。 769 00:51:06,470 --> 00:51:16,840 今、最後のステップはそうbe--ます 我々が今行う必要がある最後のステップ 770 00:51:16,840 --> 00:51:21,100 ただでマリオを呼び出している レベル入力に基づいて 771 00:51:21,100 --> 00:51:23,270 私たちは、アラートビューに入れていること。 772 00:51:23,270 --> 00:51:26,920 だから我々は変換する必要があります iOSの中にこの文字列。 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 静的オーバーフローは非常に素晴らしいです。 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 そして、私たちは自己を呼ぶ marioWithLevels値。 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 のは、その意志を見てみましょう 実際に仕事をしたりしない。 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> 我々はすでにピラミッドを与えられている。 781 00:52:01,550 --> 00:52:04,785 の高さを変更してみましょう。 782 00:52:04,785 --> 00:52:06,530 それは実際に動作します。 783 00:52:06,530 --> 00:52:07,610 それはかなりクールだ。 784 00:52:07,610 --> 00:52:10,420 今あなただけのことができるように、 入力したい任意の値。 785 00:52:10,420 --> 00:52:12,440 ちょうど4を言ってみましょう。 786 00:52:12,440 --> 00:52:14,260 これはかなり素晴らしいです。 787 00:52:14,260 --> 00:52:17,090 だから、これは基本的に 本当に簡単な例 788 00:52:17,090 --> 00:52:23,170 のためのSコードでプロジェクトを作成する方法 と本当にすぐに配線方法 789 00:52:23,170 --> 00:52:26,220 いくつかの本当にシンプルなイベントと関数。 790 00:52:26,220 --> 00:52:28,840 >> だから、ソースが起こっている 後でオンラインにする。 791 00:52:28,840 --> 00:52:33,400 だから、もし興味があるなら iOSのマリオがどのように動作するかで、 792 00:52:33,400 --> 00:52:38,360 私は全く同じに置くつもりだ 後でCS50のウェブサイト上にプロジェクト。 793 00:52:38,360 --> 00:52:41,260 私たちは基本的に作業は終了です 夏、私たちは仕上げの前に 794 00:52:41,260 --> 00:52:45,190 私はちょうどにあなたたちを指すようにしたい いくつかの本当に素晴らしいリソースその 795 00:52:45,190 --> 00:52:47,550 オンラインで入手できます。 796 00:52:47,550 --> 00:52:52,270 >> 明らかに、アップルのドキュメント 非常に参考になるだろう。 797 00:52:52,270 --> 00:52:57,630 しかし、それに加えて、私は特に 、4のソースコードの学校をお勧めします 798 00:52:57,630 --> 00:53:02,120 ツリーハウス、AppCodaとWWDCビデオ。 799 00:53:02,120 --> 00:53:07,270 コー​​ド学校やツリーハウスです 2オンラインの教育のウェブサイト、 800 00:53:07,270 --> 00:53:10,210 を特異的に焦点を合わせる ソフトウェア工学に関する。 801 00:53:10,210 --> 00:53:16,930 特に、コードの学校のために、彼ら iOSの上で本当に良いチュートリアルを持っている。 802 00:53:16,930 --> 00:53:19,550 >> それはそれのために本当に簡単な例である。 803 00:53:19,550 --> 00:53:22,980 彼らは実際に本当にcute--を作成 その小さなかわいいiPhoneを見て 804 00:53:22,980 --> 00:53:24,920 あそこ男は、それはかなり素晴らしいです。 805 00:53:24,920 --> 00:53:31,010 彼らは目的を説明し、道 Cの構文は完全には明らかである。 806 00:53:31,010 --> 00:53:32,230 ツリーハウスは同じです。 807 00:53:32,230 --> 00:53:34,660 そしてAppCodaはフォーラムです。 808 00:53:34,660 --> 00:53:38,130 これは、実際に実行されたブログの 本当に経験豊富なObjective Cのことで 809 00:53:38,130 --> 00:53:39,120 プログラマ。 810 00:53:39,120 --> 00:53:43,950 そして、AppCoda内のすべてのもののチュートリアルがあります かなり短いと簡単に実装でき、 811 00:53:43,950 --> 00:53:45,390 強くお勧めします。 812 00:53:45,390 --> 00:53:47,700 >> そして、あなたが開発者なら、 間違いなく見に行く 813 00:53:47,700 --> 00:53:55,660 どのようにWWDCのビデオをどこにすることができます 最新のiOSプログラミングについて学ぶ 814 00:53:55,660 --> 00:53:58,250 技術、APIとライブラリー。 815 00:53:58,250 --> 00:54:02,850 だから、ほとんどです セミナーのためにそれ。 816 00:54:02,850 --> 00:54:03,820 どうもありがとうございます。 817 00:54:03,820 --> 00:54:08,040 そして、私はあなたが楽しみを持っている願っています あなた自身のiOSアプリを作成する。 818 00:54:08,040 --> 00:54:09,302