1 00:00:00,000 --> 00:00:11,420 2 00:00:11,420 --> 00:00:13,590 >> Tianyu LIU: Hey, làm thế nào là nó đi tất cả mọi người? 3 00:00:13,590 --> 00:00:20,250 Và đây là iOS App chương trình mục tiêu của hội thảo c. 4 00:00:20,250 --> 00:00:21,520 Và tôi tên là Tianyu Liu. 5 00:00:21,520 --> 00:00:26,114 Tôi là một học Lowell ngay bây giờ, tập trung vào khoa học máy tính. 6 00:00:26,114 --> 00:00:28,030 Vì vậy, trong buổi hội thảo này tôi sẽ dạy cho các bạn 7 00:00:28,030 --> 00:00:30,770 một chút ít về làm thế nào để làm cho một ứng dụng. 8 00:00:30,770 --> 00:00:33,030 Yay, có được vui mừng cho nó. 9 00:00:33,030 --> 00:00:36,790 >> Vì vậy, trước khi chúng tôi bắt đầu lặn vào bên lập trình thực tế, 10 00:00:36,790 --> 00:00:41,840 chúng ta hãy chỉ thực sự nhanh chóng nói chuyện về lý do tại sao bạn có thể muốn xây dựng một ứng dụng iOS? 11 00:00:41,840 --> 00:00:43,940 Tại sao iOS rất tuyệt vời? 12 00:00:43,940 --> 00:00:47,250 Vì vậy, vấn đề đầu tiên, lần đầu tiên điều đó là khá tuyệt vời đối với chúng tôi, 13 00:00:47,250 --> 00:00:51,190 đặc biệt là khi một CS50 sinh viên, là iOS 14 00:00:51,190 --> 00:00:55,860 sử dụng Objective C. Vâng, có một ngôn ngữ mới gọi là Swift, 15 00:00:55,860 --> 00:00:58,260 nhưng chúng tôi sẽ không sử dụng trong hội thảo này. 16 00:00:58,260 --> 00:01:01,540 Nếu bạn quan tâm trong Swift, có là một hội thảo độc lập về điều đó. 17 00:01:01,540 --> 00:01:05,590 Nhưng Objective C là cơ bản một superset của C. Nghĩa 18 00:01:05,590 --> 00:01:10,230 rằng tất cả mọi thứ bạn có thể sử dụng trong C được dịch sang Objective C 19 00:01:10,230 --> 00:01:11,630 rất dễ dàng. 20 00:01:11,630 --> 00:01:15,730 >> Như bạn có thể thấy sau này, đó thực sự có một số cú pháp rất cơ bản, là 21 00:01:15,730 --> 00:01:19,790 về cơ bản giống hệt nhau, C và Objective C. Vì vậy, 22 00:01:19,790 --> 00:01:22,860 kể từ khi bạn đã thực hiện CS50 lên đến đây, bạn đã 23 00:01:22,860 --> 00:01:26,500 biết Objective C, ít nhất là 40%. 24 00:01:26,500 --> 00:01:30,720 Ngoài ra, Apple có thực sự API mạnh mẽ cho iOS. 25 00:01:30,720 --> 00:01:33,750 Có rất nhiều thực sự điên rồ điều bạn có thể làm gì với nó. 26 00:01:33,750 --> 00:01:36,760 Một trong số đó là một người nào đó thực sự tạo ra một ứng dụng iOS 27 00:01:36,760 --> 00:01:40,600 cho xe ô tô điều khiển, trong đó là khá thú vị. 28 00:01:40,600 --> 00:01:42,610 Có thể là một máy bay trực thăng là thú vị hơn. 29 00:01:42,610 --> 00:01:47,020 Nhưng đó là cách mạnh mẽ API iOS có thể được. 30 00:01:47,020 --> 00:01:49,340 >> Và như bạn có thể có tìm ra ngay bây giờ, 31 00:01:49,340 --> 00:01:53,000 stack overflow có lẽ là một trong những các nguồn tài nguyên trực tuyến quan trọng nhất 32 00:01:53,000 --> 00:01:54,250 có sẵn cho bạn. 33 00:01:54,250 --> 00:01:58,090 Và tin tốt, cho mỗi Vấn đề duy nhất mà bạn có thể có thể 34 00:01:58,090 --> 00:02:01,840 nghĩ trong khi xây dựng của bạn dự án cuối cùng trong Objective C, 35 00:02:01,840 --> 00:02:05,910 có khả năng là một câu trả lời stack overflow. 36 00:02:05,910 --> 00:02:07,420 Nó chỉ là tuyệt vời. 37 00:02:07,420 --> 00:02:12,780 Bên cạnh đó, iOS thực sự là một nền tảng 38 00:02:12,780 --> 00:02:16,260 nơi bạn có thể đạt được một lớn khán giả với ít nỗ lực. 39 00:02:16,260 --> 00:02:20,170 Nó không giống như Android, nơi mọi thứ đều khá rời rạc. 40 00:02:20,170 --> 00:02:22,540 >> Tất cả mọi thứ iOS là thống nhất. 41 00:02:22,540 --> 00:02:25,920 Và miễn là bạn tạo một ứng dụng cho iPhone, 42 00:02:25,920 --> 00:02:31,260 bạn có thể rất dễ dàng cổng đó để iPad, iPad mini, hoặc kích thước iPhone khác nhau. 43 00:02:31,260 --> 00:02:33,050 Đây là tất cả thực sự thuận tiện. 44 00:02:33,050 --> 00:02:36,430 Và nó chỉ thực sự tốt gây ấn tượng cho bạn bè của bạn. 45 00:02:36,430 --> 00:02:38,920 Bạn chỉ có thể giữ một iPhone và nói với bạn bè của bạn hey, 46 00:02:38,920 --> 00:02:40,250 đây là những ứng dụng tôi làm. 47 00:02:40,250 --> 00:02:43,860 Bạn có thể làm điều đó cho bất kỳ ứng dụng máy tính để bàn, đó là tốt đẹp. 48 00:02:43,860 --> 00:02:48,870 >> Được rồi, giờ chúng ta hãy thực sự nhận được sang ngôn ngữ Objective C. 49 00:02:48,870 --> 00:02:52,910 Vậy tại sao chúng ta không bắt đầu với một số cú pháp cơ bản thực sự. 50 00:02:52,910 --> 00:02:57,410 Như tôi đã đề cập trước Mục tiêu C Đó là cơ bản một superset của C. 51 00:02:57,410 --> 00:03:01,860 Vì vậy, rất nhiều cú pháp cơ bản là thực sự chính xác như nhau. 52 00:03:01,860 --> 00:03:06,150 Khai báo một biến và thêm hai biến cùng 53 00:03:06,150 --> 00:03:09,440 Đúng như chúng tôi đã thực hiện trong Mario. 54 00:03:09,440 --> 00:03:11,140 Không có gì mới ở đây. 55 00:03:11,140 --> 00:03:17,370 >> Tương tự như vậy, những người ở trọ cho vòng lặp và điều kiện cũng là như nhau. 56 00:03:17,370 --> 00:03:22,370 Bạn có thể làm một vòng lặp for như bạn đã làm trong một Mario [không nghe được]. 57 00:03:22,370 --> 00:03:26,280 Và bạn có thể làm điều kiện cũng giống như những gì bạn 58 00:03:26,280 --> 00:03:29,240 đã và đang làm trong bộ p trước đó của bạn. 59 00:03:29,240 --> 00:03:33,400 Tuy nhiên, Objective C không phải là hoàn toàn C, 60 00:03:33,400 --> 00:03:36,640 và có cái gì đó là loại lạ về nó. 61 00:03:36,640 --> 00:03:42,340 >> Người đầu tiên được rằng khi bạn là làm lập trình C, bạn thường gọi 62 00:03:42,340 --> 00:03:46,310 bao gồm và sau đó một tên thư viện. 63 00:03:46,310 --> 00:03:49,860 Nhưng trong Objective C bạn gọi nhập khẩu đó. 64 00:03:49,860 --> 00:03:53,100 Về cơ bản nói năng, tên chỉ khác nhau. 65 00:03:53,100 --> 00:03:55,940 Và dây là thực sự là một chút lạ. 66 00:03:55,940 --> 00:03:58,250 Bạn có thể thấy rằng người đầu tiên điều đó là loại lạ 67 00:03:58,250 --> 00:04:04,190 là bạn có khá weird-- sorry-- bạn có một NS khá lạ 68 00:04:04,190 --> 00:04:04,960 đăng ký ở đây. 69 00:04:04,960 --> 00:04:07,452 70 00:04:07,452 --> 00:04:09,160 Và điều thứ hai đó là loại lạ 71 00:04:09,160 --> 00:04:14,090 là bạn có một dấu hiệu trước thực sự tuyên bố chuỗi. 72 00:04:14,090 --> 00:04:19,209 Vì vậy, các dấu hiệu cơ bản tại nghĩa rằng một chuỗi không chỉ là một chuỗi, 73 00:04:19,209 --> 00:04:20,880 nó thực sự là một đối tượng. 74 00:04:20,880 --> 00:04:22,780 Chúng tôi sẽ giải thích mà sau này vì vậy không 75 00:04:22,780 --> 00:04:25,800 hoảng sợ nếu bạn không hiểu điều đó có nghĩa là gì. 76 00:04:25,800 --> 00:04:29,980 Và in ấn cho giao diện điều khiển là một chút khác nhau bởi vì trong C chúng ta gọi printf, 77 00:04:29,980 --> 00:04:33,350 nhưng trong Objective C chúng ta gọi là [không nghe được]. 78 00:04:33,350 --> 00:04:35,640 >> Bạn có thể tự hỏi đó là những gì. 79 00:04:35,640 --> 00:04:38,070 Đó là cơ bản printf, chỉ là một ngôn ngữ khác nhau. 80 00:04:38,070 --> 00:04:41,370 Chính xác là sử dụng cùng một, chính xác các chức năng tương tự. 81 00:04:41,370 --> 00:04:44,060 Vâng nó chỉ ra rằng Mục tiêu thực sự C 82 00:04:44,060 --> 00:04:50,040 có ns tiền tố trong hầu tất cả mọi thứ, tất cả các loại dữ liệu cơ bản, 83 00:04:50,040 --> 00:04:52,690 NSString, NSArray, NSDictionary. 84 00:04:52,690 --> 00:04:56,340 Lý do được rằng ns thực sự là viết tắt của Bước tiếp theo, 85 00:04:56,340 --> 00:04:59,980 đó là một công ty Steve Jobs đã thành lập, 86 00:04:59,980 --> 00:05:03,960 đó là một công ty nơi ngôn ngữ Objective C được sinh ra. 87 00:05:03,960 --> 00:05:06,140 Vì vậy, đây là cơ bản truyền thống. 88 00:05:06,140 --> 00:05:09,010 Tôi biết đó là một chút kỳ lạ, nhưng đó là Apple. 89 00:05:09,010 --> 00:05:16,840 >> Vì vậy, cái gì mà là thậm chí lạ hơn là một khai báo hàm. 90 00:05:16,840 --> 00:05:22,600 Điều này rất khác với những gì chúng tôi nhìn thấy trong C, bởi vì ở đây nó thực sự 91 00:05:22,600 --> 00:05:25,190 không giống như C nữa. 92 00:05:25,190 --> 00:05:28,810 Những gì bạn có here-- bởi Cách đây không phải là một điểm nhấn, 93 00:05:28,810 --> 00:05:30,690 đây là một dấu trừ. 94 00:05:30,690 --> 00:05:36,440 Bạn có một dấu ngoặc dấu trừ vô hiệu và sau đó tên hàm. 95 00:05:36,440 --> 00:05:38,450 Hãy chỉ nói rằng nếu chúng tôi có hello thế giới, sau đó 96 00:05:38,450 --> 00:05:42,820 kiểu trả về sẽ không có hiệu lực bởi vì chúng tôi không có gì trở lại. 97 00:05:42,820 --> 00:05:44,680 >> Những gì được thực sự kỳ lạ là khi bạn đang 98 00:05:44,680 --> 00:05:49,580 có nhiều hơn một tham số đi vào cùng một chức năng mà 99 00:05:49,580 --> 00:05:53,870 sẽ được thực sự kỳ lạ như ở đây. 100 00:05:53,870 --> 00:05:58,230 Chúng tôi có một tên phương thức, gọi addInt tới [Không nghe thấy] 101 00:05:58,230 --> 00:06:00,370 và chúng tôi đang đi qua một tham số. 102 00:06:00,370 --> 00:06:05,170 Nhưng sau đó, chúng tôi có hơn gọi tên phương thức với. 103 00:06:05,170 --> 00:06:08,500 Và sau khi có chúng tôi đang đi qua tham số thứ hai. 104 00:06:08,500 --> 00:06:11,940 Đây thực sự là một chút kỳ lạ, nhưng tất cả các tờ khai chức năng 105 00:06:11,940 --> 00:06:14,770 theo cùng một khuôn mẫu như này. 106 00:06:14,770 --> 00:06:17,450 >> Chúng tôi có một dấu trừ để bắt đầu với. 107 00:06:17,450 --> 00:06:21,550 Các dấu trừ có thể là một dấu cộng đôi khi dựa vào loại phương pháp 108 00:06:21,550 --> 00:06:22,340 là nó. 109 00:06:22,340 --> 00:06:25,000 Phương pháp là cơ bản một tên khác cho chức năng. 110 00:06:25,000 --> 00:06:26,760 Và chúng ta sẽ giải thích rằng sau khi 111 00:06:26,760 --> 00:06:30,580 chúng ta đang nói về đối tượng lập trình hướng. 112 00:06:30,580 --> 00:06:34,300 Trước tiên, bạn chỉ định sự trở lại gõ dấu ngoặc đơn bên trong, 113 00:06:34,300 --> 00:06:37,450 sau đó có những tên phương pháp. 114 00:06:37,450 --> 00:06:40,310 Bạn đang đi qua một tham số. 115 00:06:40,310 --> 00:06:44,750 Và nếu bạn có thêm nhiều thông số bạn cần mở rộng các phương pháp hiệu 116 00:06:44,750 --> 00:06:46,770 và về cơ bản viết cái gì ở đây nữa. 117 00:06:46,770 --> 00:06:48,090 >> Nó có thể là bất cứ điều gì bạn muốn. 118 00:06:48,090 --> 00:06:50,140 Trong trường hợp của chúng nó với. 119 00:06:50,140 --> 00:06:56,160 Nhưng bạn có thể nói kết thúc, hay hay, hoặc abc đầy đủ quán bar, bất cứ điều gì bạn muốn. 120 00:06:56,160 --> 00:06:59,500 Và sau đó sau đó bạn qua tham số b. 121 00:06:59,500 --> 00:07:01,750 Đây là một thực sự kỳ lạ ước nhưng chúng tôi 122 00:07:01,750 --> 00:07:05,800 sẽ thấy lý do tại sao Apple muốn để làm điều đó một cách nhanh chóng. 123 00:07:05,800 --> 00:07:10,530 Vì vậy, làm thế nào để bạn gọi chức năng? 124 00:07:10,530 --> 00:07:15,520 Kêu gọi một chức năng trong Mục tiêu C cũng khác nhau từ C. 125 00:07:15,520 --> 00:07:18,170 >> Trên thực tế, gọi một chức năng trong Objective C 126 00:07:18,170 --> 00:07:21,030 là giống như bạn đang nói chuyện với một ai đó. 127 00:07:21,030 --> 00:07:27,030 Ở đây chúng ta có tự ngã, mà được gọi là một đối tượng. 128 00:07:27,030 --> 00:07:33,830 Bạn đang nói về cơ bản các đối tượng tự để nói "Hello World!" 129 00:07:33,830 --> 00:07:36,830 Đó là làm thế nào để gọi hàm. 130 00:07:36,830 --> 00:07:41,690 Một đối tượng và một tên phương pháp kết hợp với nhau. 131 00:07:41,690 --> 00:07:49,600 Và đây là nơi mà các phần mở rộng lạ cho tên phương pháp thực sự đi vào chơi. 132 00:07:49,600 --> 00:07:52,150 >> Hãy nhìn vào ví dụ thứ hai. 133 00:07:52,150 --> 00:07:56,780 Chúng tôi chỉ được xác định một phương pháp gọi là addInt với blah blah blah. 134 00:07:56,780 --> 00:08:00,066 Vì vậy, trong trường hợp này khi bạn đang gọi mà [cụ thể? tin nhắn?] nó sẽ 135 00:08:00,066 --> 00:08:02,035 trông giống như tự addInt: 10 với: 2. 136 00:08:02,035 --> 00:08:05,410 137 00:08:05,410 --> 00:08:08,070 Nghe có vẻ như tiếng Anh. 138 00:08:08,070 --> 00:08:11,980 Mặc dù chức năng khai báo hàm là lạ, 139 00:08:11,980 --> 00:08:15,600 điểm của Mục tiêu của C mô hình phương pháp kê khai, 140 00:08:15,600 --> 00:08:18,830 là khi bạn đang gọi các chức năng hoặc các phương pháp 141 00:08:18,830 --> 00:08:21,980 nó sẽ âm thanh như tiếng Anh thực tế. 142 00:08:21,980 --> 00:08:25,270 Vì vậy, nó rất trực quan một khi bạn nhận được vào nó. 143 00:08:25,270 --> 00:08:28,740 >> Đặc biệt là trong trường hợp này, nơi bạn có thể cơ bản 144 00:08:28,740 --> 00:08:33,010 thấy rằng các tên hàm là loại tài liệu chính nó. 145 00:08:33,010 --> 00:08:35,390 Bạn không cần bất kỳ giải thích thêm để xem 146 00:08:35,390 --> 00:08:42,770 chính xác những gì đang xảy ra, những gì chính xác một tham số làm. 147 00:08:42,770 --> 00:08:48,470 Đi xa hơn, chúng ta hãy nói một chút chút về lập trình hướng đối tượng. 148 00:08:48,470 --> 00:08:52,160 Lập trình hướng đối tượng là một trong những lập trình cơ bản 149 00:08:52,160 --> 00:08:57,110 kỹ thuật hoặc các mẫu mà là được sử dụng bởi Objective C. Objective C 150 00:08:57,110 --> 00:09:03,110 được gọi là Mục tiêu C, không C, vì một lý do thực sự tốt. 151 00:09:03,110 --> 00:09:07,560 >> Vì vậy, trước khi chúng tôi nhận được vào Cú pháp C Mục tiêu, 152 00:09:07,560 --> 00:09:11,670 Hãy thực sự nhanh chóng xem xét những gì chính xác là một đối tượng. 153 00:09:11,670 --> 00:09:15,480 Chúng tôi đã có thể làm một cái gì đó như đối tượng trước đó, mà 154 00:09:15,480 --> 00:09:19,780 được gọi là các cấu trúc khi bạn là thực hiện một cây hoặc một danh sách liên kết 155 00:09:19,780 --> 00:09:25,730 hoặc [? thử. ?] Vì vậy, nó là về cơ bản giống như một cấu trúc, 156 00:09:25,730 --> 00:09:28,560 nhưng nó mạnh hơn rất nhiều hơn thế. 157 00:09:28,560 --> 00:09:33,150 Một đối tượng có phương pháp và tài sản. 158 00:09:33,150 --> 00:09:35,310 Các phương pháp cơ bản là chức năng. 159 00:09:35,310 --> 00:09:39,480 Về cơ bản các chức năng mà một cụ thể cho một đối tượng nhất định. 160 00:09:39,480 --> 00:09:45,440 >> Và tài sản về cơ bản lĩnh vực bạn chỉ định trong cấu trúc. 161 00:09:45,440 --> 00:09:48,500 Vì vậy, đối với mỗi đối tượng duy nhất chúng tôi có một số tài sản 162 00:09:48,500 --> 00:09:53,160 mà có một số biến mà được cụ thể cho các đối tượng. 163 00:09:53,160 --> 00:09:57,170 Và chúng tôi có một số chức năng mà cũng được cụ thể cho các đối tượng. 164 00:09:57,170 --> 00:10:01,180 Và các chức năng được gọi là phương pháp và các biến được gọi là thuộc tính. 165 00:10:01,180 --> 00:10:03,190 Nó chỉ là một tên ưa thích. 166 00:10:03,190 --> 00:10:10,440 Trong khi bạn thực tế, mỗi cái nhìn duy nhất bạn nhìn thấy khi bạn mở một ứng dụng iOS, 167 00:10:10,440 --> 00:10:17,720 hãy chỉ nói rằng Twitter hay Facebook, mỗi cái nhìn duy nhất bạn thấy là một đối tượng. 168 00:10:17,720 --> 00:10:22,110 Và thậm chí toàn bộ các ứng dụng là một đối tượng để bắt đầu. 169 00:10:22,110 --> 00:10:25,340 Khái niệm rất thú vị. 170 00:10:25,340 --> 00:10:28,480 >> Và tại sao chúng ta muốn đối tượng lập trình hướng? 171 00:10:28,480 --> 00:10:33,530 Vì vậy, bạn có thể tưởng tượng rằng khi bạn chương trình nó được khá phức tạp. 172 00:10:33,530 --> 00:10:36,400 Hãy chỉ nói rằng khi bạn đang thực hiện trên bàn cờ, 173 00:10:36,400 --> 00:10:40,020 logic là sẽ được thực sự phức tạp. 174 00:10:40,020 --> 00:10:43,280 Bạn có 36 khác nhau miếng, do đó nếu bạn 175 00:10:43,280 --> 00:10:48,370 muốn viết logic cho tất cả 36 phần khác nhau trong cờ vua, 176 00:10:48,370 --> 00:10:52,150 đó là sẽ có rất nhiều chức năng khác nhau và các biến. 177 00:10:52,150 --> 00:10:54,070 Đó là rất nhiều rắc rối. 178 00:10:54,070 --> 00:10:58,980 Và có lẽ bạn đang đi để viết một phương pháp khác nhau hoặc các chức năng khác nhau 179 00:10:58,980 --> 00:11:03,950 cho từng mảnh kiểm soát chính xác những gì họ làm. 180 00:11:03,950 --> 00:11:08,830 >> Nhưng nếu bạn làm hướng đối tượng lập trình, tất cả các thành phần này 181 00:11:08,830 --> 00:11:12,440 có thể được trừu tượng hóa thành một đối tượng duy nhất. 182 00:11:12,440 --> 00:11:16,111 Và các đối tượng sẽ có một số chung thuộc tính, giống như những loại miếng 183 00:11:16,111 --> 00:11:16,610 là nó? 184 00:11:16,610 --> 00:11:17,740 Nó thì màu gì? 185 00:11:17,740 --> 00:11:19,480 Làm thế nào nó có thể di chuyển? 186 00:11:19,480 --> 00:11:24,660 Và bằng cách đó bạn có rất nhiều đơn giản hóa các logic của nó. 187 00:11:24,660 --> 00:11:28,480 Vì vậy, nó chỉ là một cách thực sự tốt để làm cho chương trình phức tạp, 188 00:11:28,480 --> 00:11:33,700 và mối quan hệ thứ bậc trong chương trình, rất đơn giản. 189 00:11:33,700 --> 00:11:36,800 Như chúng ta sẽ thấy lý do tại sao rất nhanh khi 190 00:11:36,800 --> 00:11:39,660 chúng tôi đang thực sự làm programming-- khi chúng tôi thực sự 191 00:11:39,660 --> 00:11:42,830 làm một mã S lập trình phiên sau đó. 192 00:11:42,830 --> 00:11:48,120 >> Vâng, thêm vào đó, lập trình hướng đối tượng 193 00:11:48,120 --> 00:11:50,030 chỉ là rất nhiều niềm vui. 194 00:11:50,030 --> 00:11:51,990 Bạn có để thiết kế đối tượng của riêng bạn. 195 00:11:51,990 --> 00:11:56,080 Bạn có để thiết kế những gì không nó trông giống như của chính mình. 196 00:11:56,080 --> 00:11:58,250 Không có câu trả lời đúng cho nó. 197 00:11:58,250 --> 00:12:02,940 Và nó hoàn toàn thú vị. 198 00:12:02,940 --> 00:12:07,270 Vì vậy, trong trình hướng đối tượng, hai khái niệm cơ bản 199 00:12:07,270 --> 00:12:10,130 sẽ được lớp học và dụ. 200 00:12:10,130 --> 00:12:13,570 Một lớp học là cơ bản một mẫu cho đối tượng. 201 00:12:13,570 --> 00:12:18,070 Và một ví dụ về cơ bản là một đối tượng cụ thể. 202 00:12:18,070 --> 00:12:21,090 >> Hãy chỉ nói rằng bạn đang làm cho một cookie. 203 00:12:21,090 --> 00:12:24,800 Trong trường hợp này, mỗi đơn cookie, bạn thực sự kết thúc với 204 00:12:24,800 --> 00:12:27,310 là có được một đối tượng. 205 00:12:27,310 --> 00:12:35,830 Nhưng tấm cookie, bạn sử dụng để nướng tất cả các tập tin cookie sẽ là một lớp. 206 00:12:35,830 --> 00:12:37,880 Một lớp học về cơ bản là một bản mẫu. 207 00:12:37,880 --> 00:12:46,170 Và ví dụ cụ thể sẽ là một trong đối tượng được tạo ra của lớp đó. 208 00:12:46,170 --> 00:12:49,970 >> Và một ví dụ sẽ được tạo ra dựa vào khai báo lớp, 209 00:12:49,970 --> 00:12:56,760 như chúng ta sẽ thấy trong các slide sau. 210 00:12:56,760 --> 00:13:00,010 Vì vậy, chúng ta hãy thực sự làm một thực sự ví dụ nhanh chóng [không nghe được]. 211 00:13:00,010 --> 00:13:04,280 Hãy nói rằng chúng tôi đang tuyên bố một đối tượng cho một con mèo. 212 00:13:04,280 --> 00:13:07,930 Các đối tượng nên have-- lớp con mèo nên 213 00:13:07,930 --> 00:13:11,260 có một số thuộc tính và phương pháp. 214 00:13:11,260 --> 00:13:17,300 Những loại tài sản nên việc lớp have-- mèo nên có? 215 00:13:17,300 --> 00:13:20,580 >> Ví dụ, màu sắc, tuổi và giống, những 216 00:13:20,580 --> 00:13:24,440 sẽ biến cụ thể đối với mỗi con mèo. 217 00:13:24,440 --> 00:13:27,790 Và đó là một số điều mà chúng tôi sử dụng để mô tả một con mèo. 218 00:13:27,790 --> 00:13:31,880 Những loại phương pháp, hoặc những gì có thể một con mèo làm gì? 219 00:13:31,880 --> 00:13:37,160 Một số ví dụ nhanh chóng sẽ đuổi chuột, ăn cá hoặc chỉ meo. 220 00:13:37,160 --> 00:13:40,900 Đây là một thực sự nhanh chóng ví dụ về con mèo lớp. 221 00:13:40,900 --> 00:13:46,920 Và một thực sự cụ thể mèo đối tượng sẽ là một con mèo 222 00:13:46,920 --> 00:13:50,930 nơi chúng tôi chỉ định màu sắc, độ tuổi và giống. 223 00:13:50,930 --> 00:13:53,790 >> Trong trường hợp đó, đối tượng của chúng tôi là không còn một lớp nữa. 224 00:13:53,790 --> 00:14:00,010 Chúng tôi sao chép các mẫu từ lớp và chúng tôi xác định mỗi thông tin cụ thể 225 00:14:00,010 --> 00:14:04,510 đến đối tượng cụ thể để làm cho nó độc lập. 226 00:14:04,510 --> 00:14:09,350 Và khi bạn đang gọi một phương pháp trong một đối tượng, 227 00:14:09,350 --> 00:14:16,640 bạn chỉ cần gọi meo meo vào đối tượng, đó là con mèo mà bạn vừa tạo. 228 00:14:16,640 --> 00:14:19,020 >> Có lẽ bạn sẽ in ra một cái gì đó như "Xin chào thế giới! 229 00:14:19,020 --> 00:14:20,000 Meow. " 230 00:14:20,000 --> 00:14:22,110 Khá dễ thương. 231 00:14:22,110 --> 00:14:24,500 Được rồi, chúng ta hãy chỉ nhận được vào một số chi tiết 232 00:14:24,500 --> 00:14:30,650 và xem chính xác những gì mà dịch vào là lập trình iOS. 233 00:14:30,650 --> 00:14:36,500 Vì vậy, trong lập trình iOS mỗi đơn lớp học sẽ được thực hiện trong hai tập tin. 234 00:14:36,500 --> 00:14:41,420 Một tập tin là ở đây, mà được gọi là giao diện. 235 00:14:41,420 --> 00:14:45,300 Tập tin khác là ở đây, mà được gọi là thực hiện. 236 00:14:45,300 --> 00:14:48,890 >> Điển hình giao diện sẽ có extension.h 237 00:14:48,890 --> 00:14:51,740 như chúng ta đã thấy trong các thư viện C. 238 00:14:51,740 --> 00:14:56,340 Và tập tin thực hiện là sẽ có extension.n. 239 00:14:56,340 --> 00:14:57,260 Đó là loại lạ. 240 00:14:57,260 --> 00:15:01,270 Nhưng Đô nghĩa thực sự .c, không có Sự khác biệt cơ bản giữa những người 241 00:15:01,270 --> 00:15:02,100 hai. 242 00:15:02,100 --> 00:15:06,650 Vì vậy, trong trường hợp này, chúng ta có thể thấy rằng chúng tôi tuyên bố giao diện, Cat: đối tượng. 243 00:15:06,650 --> 00:15:10,660 244 00:15:10,660 --> 00:15:13,760 Đó được gọi là thừa kế. 245 00:15:13,760 --> 00:15:19,170 Chúng tôi về cơ bản kế thừa mèo lớp từ lớp đối tượng. 246 00:15:19,170 --> 00:15:24,790 Vì vậy, mọi tài sản và phương pháp đã được trước đây được định nghĩa trong các lớp đối tượng 247 00:15:24,790 --> 00:15:28,560 sẽ được tự động xác định trong một lớp học mèo là tốt. 248 00:15:28,560 --> 00:15:35,900 >> Bên cạnh đó, chúng tôi xác định màu sắc, giống, và tuổi tác, ba biến. 249 00:15:35,900 --> 00:15:39,360 Điều đó thực sự trông giống như một cái gì đó bạn đã làm trước đó. 250 00:15:39,360 --> 00:15:41,770 Nó trông giống như cấu trúc. 251 00:15:41,770 --> 00:15:44,950 Đó là cơ bản cú pháp khai báo struct, 252 00:15:44,950 --> 00:15:47,710 và đó là hoàn toàn chính xác. 253 00:15:47,710 --> 00:15:51,825 Và kể từ khi tôi đã đề cập trước, sự khác biệt một struct 254 00:15:51,825 --> 00:15:53,960 và một đối tượng, một trong những khác biệt cơ bản 255 00:15:53,960 --> 00:15:59,080 là một đối tượng có phương pháp, trong khi một cấu trúc chỉ có các biến. 256 00:15:59,080 --> 00:16:03,450 Vì vậy, ngoài những đặc tính hay biến chúng tôi đã tạo cho các đối tượng, 257 00:16:03,450 --> 00:16:05,700 chúng tôi chỉ định một số phương pháp. 258 00:16:05,700 --> 00:16:09,720 >> Hãy chỉ nói rằng ở đây chúng tôi có hai phương pháp, một là meo meo, 259 00:16:09,720 --> 00:16:12,460 một số khác là đuổi chuột. 260 00:16:12,460 --> 00:16:18,600 Chúng tôi có thể muốn được đi qua một tham số dựa trên phương pháp trước đó của chúng tôi 261 00:16:18,600 --> 00:16:20,440 mẫu tờ khai. 262 00:16:20,440 --> 00:16:22,160 Bạn có thể muốn được đi qua một con chuột. 263 00:16:22,160 --> 00:16:25,180 Và có thể bạn sẽ muốn để trả lại một biểu bool 264 00:16:25,180 --> 00:16:30,010 nếu con mèo của bạn có thành công bắt chuột hay không. 265 00:16:30,010 --> 00:16:33,170 >> Đây là giao diện, nhưng chúng ta có thể thấy rằng giao diện thực 266 00:16:33,170 --> 00:16:35,150 không làm bất cứ điều gì. 267 00:16:35,150 --> 00:16:40,800 Nó chỉ nói cho một chương trình gì exists-- những gì tồn tại trong các lớp con mèo. 268 00:16:40,800 --> 00:16:43,640 Vì vậy để cho các chương trình để làm một cái gì đó, 269 00:16:43,640 --> 00:16:46,680 chúng ta cần phải có các tập tin thực thi. 270 00:16:46,680 --> 00:16:51,940 Vì vậy, ở đây, điều đầu tiên chúng tôi làm là rõ ràng là chúng tôi nhập khẩu giao diện. 271 00:16:51,940 --> 00:16:56,470 Sau khi chúng tôi nhập khẩu giao diện, chúng ta định nghĩa phương pháp. 272 00:16:56,470 --> 00:17:00,150 >> Hãy chỉ nói rằng đây meow chỉ cần sẽ in ra 273 00:17:00,150 --> 00:17:01,740 "Hello World!" bàn điều khiển. 274 00:17:01,740 --> 00:17:04,319 275 00:17:04,319 --> 00:17:08,460 Và sau khi thực hiện tập tin, chúng tôi đang thực hiện khá nhiều. 276 00:17:08,460 --> 00:17:14,530 Điều này về cơ bản là một lớp học khai cho một lớp. 277 00:17:14,530 --> 00:17:19,970 Vì vậy, câu hỏi bây giờ sẽ trở thành, làm thế nào để bạn khai báo một biến? 278 00:17:19,970 --> 00:17:26,880 Cách bạn sử dụng một lớp học để tạo ra một đối tượng trong Objective C được viết ở đây. 279 00:17:26,880 --> 00:17:30,730 >> Trước tiên, bạn xác định rằng đây là một con trỏ mèo, 280 00:17:30,730 --> 00:17:38,700 bởi vì mỗi đối tượng trong Objective C cuối cùng cũng được thực hiện như một con trỏ. 281 00:17:38,700 --> 00:17:46,210 Và bạn gọi lớp, gọi cho họ như alloc, mà về cơ bản là malloc, 282 00:17:46,210 --> 00:17:51,220 nói với các hệ điều hành mà bạn cần một số không gian bộ nhớ cho đối tượng này. 283 00:17:51,220 --> 00:17:55,780 Sau đó bạn có một đối tượng đã và bạn chỉ cần khởi tạo nó. 284 00:17:55,780 --> 00:17:56,780 Đây chỉ là quy ước. 285 00:17:56,780 --> 00:17:59,390 286 00:17:59,390 --> 00:18:04,410 Tôi biết nó là một chút lạ, nhưng điều này thực sự làm thế nào Apple, hiện công cụ. 287 00:18:04,410 --> 00:18:07,130 >> Gán thuộc tính được thực sự khá đơn giản. 288 00:18:07,130 --> 00:18:09,250 Nó rất giống với những gì bạn đang làm khi 289 00:18:09,250 --> 00:18:13,780 bạn đang gán một số cụ thể trường bên trong của cấu trúc. 290 00:18:13,780 --> 00:18:16,830 Bạn chỉ có biến tên, tên tài sản, 291 00:18:16,830 --> 00:18:20,140 và chỉ định một giá trị cụ thể cho nó. 292 00:18:20,140 --> 00:18:24,120 Và gọi một phương pháp là rất giống nhau. 293 00:18:24,120 --> 00:18:29,080 Việc gọi một phương thức là về cơ bản những gì tôi nói về 294 00:18:29,080 --> 00:18:32,390 để gọi bất kỳ phương pháp trong Objective C. 295 00:18:32,390 --> 00:18:36,660 >> Bạn đang đi qua một đối tượng, trong trường hợp này nó sẽ là myCat, 296 00:18:36,660 --> 00:18:42,490 và bạn đang đi qua các tên phương pháp. 297 00:18:42,490 --> 00:18:47,130 Vì nếu bạn đang nói chuyện với các đối tượng, myCat, mà bạn nên meo. 298 00:18:47,130 --> 00:18:48,570 Nó khá thú vị. 299 00:18:48,570 --> 00:18:52,010 300 00:18:52,010 --> 00:18:55,680 Sau đó, có một mẫu thiết kế thiết yếu hơn 301 00:18:55,680 --> 00:18:59,940 rằng chúng ta cần nói chuyện về trước khi nhận mã S thực tế. 302 00:18:59,940 --> 00:19:03,300 Đó là mẫu thiết kế được gọi là sự kiện định hướng lập trình. 303 00:19:03,300 --> 00:19:09,660 Đây có lẽ cũng là một trong những nhất ý tưởng cơ bản trong lập trình iOS. 304 00:19:09,660 --> 00:19:14,410 >> Vì vậy, có thể bạn không biết chính xác những gì là lập trình hướng sự kiện, 305 00:19:14,410 --> 00:19:16,990 nhưng nó không thực sự là đáng sợ. 306 00:19:16,990 --> 00:19:20,400 Cũng trong thực tế, bạn có đã làm điều đó trước. 307 00:19:20,400 --> 00:19:24,894 Đây là một trong những dòng bạn đã có thể đã viết trong cuối [Không nghe thấy] 308 00:19:24,894 --> 00:19:26,810 của CS50, google.maps.event.addListener (marker, 309 00:19:26,810 --> 00:19:27,810 "Click", function () {}) :. 310 00:19:27,810 --> 00:19:32,410 311 00:19:32,410 --> 00:19:37,620 Bằng cách gọi dòng này bạn về cơ bản lệnh cho máy tính 312 00:19:37,620 --> 00:19:42,650 rằng bất cứ khi nào sự kiện này được gọi là "Click" xảy ra vào các điểm đánh dấu, 313 00:19:42,650 --> 00:19:43,630 sử dụng chức năng đó. 314 00:19:43,630 --> 00:19:46,910 315 00:19:46,910 --> 00:19:50,950 >> Điều này là rất khác nhau từ những gì bạn làm trong mario.c. 316 00:19:50,950 --> 00:19:56,670 Trong mario.c bạn chỉ cần chạy chương trình một lần, nó mang lại cho bạn một đầu ra, 317 00:19:56,670 --> 00:19:58,590 và bạn đang làm. 318 00:19:58,590 --> 00:20:02,590 Đây là loại giống như một chương trình bắn. 319 00:20:02,590 --> 00:20:05,830 Sự kiện định hướng chương trình rất, rất khác nhau. 320 00:20:05,830 --> 00:20:10,230 Hãy tưởng tượng, nếu Facebook là một trong những Chương trình bắn nó không thực sự tốt. 321 00:20:10,230 --> 00:20:13,750 Bạn chỉ cần vào Facebook một lần và nó được thực hiện. 322 00:20:13,750 --> 00:20:16,700 Nó cung cấp cho bạn một số đầu ra và bạn không bao giờ có nó trở lại. 323 00:20:16,700 --> 00:20:19,380 Bạn không bao giờ có bất cứ điều gì nhiều hơn. 324 00:20:19,380 --> 00:20:23,880 >> Vì vậy, ở đây, đặc biệt là mẫu, chúng tôi sử dụng là 325 00:20:23,880 --> 00:20:26,940 theo sự kiện, do đó mọi chức năng sẽ 326 00:20:26,940 --> 00:20:31,480 được bắt dựa trên những gì sự kiện đã xảy ra. 327 00:20:31,480 --> 00:20:34,670 Ví dụ, nếu chúng ta có một nút và chúng tôi chỉ định 328 00:20:34,670 --> 00:20:39,870 rằng bất cứ khi nào nút được nhấn vào, gọi hàm gọi là "Hello World!" 329 00:20:39,870 --> 00:20:47,810 Bằng cách đó chúng ta có thể thực sự quản lý logic chức năng 330 00:20:47,810 --> 00:20:50,560 chảy một cách rất linh hoạt. 331 00:20:50,560 --> 00:20:55,840 Người dùng có thể làm hoặc gọi một chức năng mà đã được gọi. 332 00:20:55,840 --> 00:20:59,900 Nó hoàn toàn dựa trên những gì người dùng thực. 333 00:20:59,900 --> 00:21:04,080 >> Vì vậy, chúng ta có thể thấy rằng đây là thực sự tốt hơn nhiều so với mario.c. 334 00:21:04,080 --> 00:21:07,190 Và tin tốt là nó thực sự không phải là một khái niệm mới. 335 00:21:07,190 --> 00:21:12,140 Các bạn đã thực hiện rằng trong vấn đề cuối cùng thiết lập. 336 00:21:12,140 --> 00:21:16,640 Vì vậy, trong Objective C có ba biểu đồ khác nhau 337 00:21:16,640 --> 00:21:19,030 cho lập trình hướng sự kiện. 338 00:21:19,030 --> 00:21:21,970 Các sơ đồ đầu tiên là gọi là hành động mục tiêu, 339 00:21:21,970 --> 00:21:26,990 nơi bạn ràng buộc một nút báo chí với một số chức năng. 340 00:21:26,990 --> 00:21:31,590 Hãy chỉ nói rằng, bất cứ khi nào bạn bấm một số nút, bạn gọi một số chức năng. 341 00:21:31,590 --> 00:21:33,620 Đây là hành động mục tiêu rất đơn giản. 342 00:21:33,620 --> 00:21:35,580 >> Điều thứ hai là thực sự là khó khăn nhất, 343 00:21:35,580 --> 00:21:38,450 nó được gọi là phái đoàn trên giao thức. 344 00:21:38,450 --> 00:21:41,800 Chúng tôi sẽ giải thích mà rất chi tiết sau. 345 00:21:41,800 --> 00:21:44,420 Và cách thứ ba là thông báo. 346 00:21:44,420 --> 00:21:46,770 Điều này thực sự không rất quan trọng như xa 347 00:21:46,770 --> 00:21:50,920 như chúng ta đang quan tâm, bởi vì cơ hội mà bạn sẽ sử dụng thông báo 348 00:21:50,920 --> 00:21:53,310 trong dự án cuối cùng của bạn là khá thấp. 349 00:21:53,310 --> 00:21:56,440 Vì vậy, chúng ta sẽ bỏ qua phần đó. 350 00:21:56,440 --> 00:21:59,460 >> Và chúng tôi sẽ đi sâu thành đoàn trên giao thức. 351 00:21:59,460 --> 00:22:02,380 352 00:22:02,380 --> 00:22:04,470 Vì vậy, những gì chính xác là một giao thức? 353 00:22:04,470 --> 00:22:06,450 Hoặc một phái đoàn chính xác những gì là? 354 00:22:06,450 --> 00:22:09,670 Hãy nói về giao thức để bắt đầu. 355 00:22:09,670 --> 00:22:13,360 Các giao thức là gì, nhưng các sự kiện. 356 00:22:13,360 --> 00:22:19,230 Nhưng những sự kiện này được đưa ra để bạn bởi Apple để bắt đầu. 357 00:22:19,230 --> 00:22:22,640 Ví dụ, tôi không hoàn toàn chắc chắn có bao nhiêu bạn 358 00:22:22,640 --> 00:22:27,930 guys sử dụng ban đầu của Apple ứng dụng mail hoặc liên lạc, 359 00:22:27,930 --> 00:22:32,180 nhưng mỗi khi bạn di chuyển bảng và nhấn tế bào cụ thể 360 00:22:32,180 --> 00:22:36,130 trên bàn, đó là một sự kiện. 361 00:22:36,130 --> 00:22:38,330 >> Và nếu bạn muốn làm rằng sự kiện của mình, 362 00:22:38,330 --> 00:22:40,410 nó thực sự là một chút khó khăn. 363 00:22:40,410 --> 00:22:44,880 Vì vậy, Apple đã cho rằng ngay cả với bạn để bạn có thể chỉ trực tiếp sử dụng 364 00:22:44,880 --> 00:22:49,610 sự kiện để làm một cái gì đó của riêng bạn. 365 00:22:49,610 --> 00:22:52,980 Các giao thức là thực sự thực sự, thực sự sử dụng rộng rãi 366 00:22:52,980 --> 00:22:58,320 Objective C. Cũng trong Thực tế, mỗi ứng dụng duy nhất 367 00:22:58,320 --> 00:23:00,870 có một cái gì đó bắt ứng dụng delegate. 368 00:23:00,870 --> 00:23:06,330 Bên trong của tinh tế là tất cả các giao thức cho việc tải các ứng dụng. 369 00:23:06,330 --> 00:23:12,470 >> Hãy chỉ nói rằng đó là một sự kiện cho các ứng dụng đã tải. 370 00:23:12,470 --> 00:23:18,200 Vì vậy, những gì sẽ xảy ra sau khi bạn đã tạo ra một ứng dụng, sau khi bạn mở ứng dụng, 371 00:23:18,200 --> 00:23:22,630 sau khi bạn đóng các ứng dụng, hoặc sau khi bạn đưa iPhone vào giấc ngủ. 372 00:23:22,630 --> 00:23:27,480 Đây là tất cả các sự kiện mà có đã được trao cho bạn. 373 00:23:27,480 --> 00:23:34,730 Và ban đầu bên trong các hạt sẽ không có thực. 374 00:23:34,730 --> 00:23:39,750 Apple chỉ nói với bạn rằng chức năng này sẽ xảy ra khi một số sự kiện xảy ra, 375 00:23:39,750 --> 00:23:44,380 nhưng những gì bạn làm với điều đó chức năng là hoàn toàn tùy thuộc vào bạn. 376 00:23:44,380 --> 00:23:49,290 >> Đoàn về cơ bản là nói cho các lớp 377 00:23:49,290 --> 00:23:53,060 rằng bạn nên xử lý các giao thức này. 378 00:23:53,060 --> 00:23:55,340 Đó là một chút khó hiểu, nhưng nó sẽ được 379 00:23:55,340 --> 00:23:59,380 rõ ràng hơn khi chúng ta làm các mã trong hành động. 380 00:23:59,380 --> 00:24:04,760 Phái đoàn trên giao thức thực sự là một cơ chế rất mạnh mẽ trong ý nghĩa 381 00:24:04,760 --> 00:24:08,160 rằng nếu chúng ta làm đoàn một lớp cụ thể, 382 00:24:08,160 --> 00:24:12,400 chúng tôi về cơ bản có thể xử lý tất cả các loại sự kiện 383 00:24:12,400 --> 00:24:17,040 sử dụng bất kỳ lớp chúng ta có, công cụ rất thuận tiện. 384 00:24:17,040 --> 00:24:21,530 >> Vì vậy, một ví dụ nhanh chóng cho Đoàn về giao thức 385 00:24:21,530 --> 00:24:24,120 sẽ được những gì tôi vừa nói đến. 386 00:24:24,120 --> 00:24:26,720 387 00:24:26,720 --> 00:24:30,890 Giao thức này đặc biệt được gọi là tableview [Không nghe thấy] chọn vai trò 388 00:24:30,890 --> 00:24:35,480 tại [? chỉ số?] [? quá khứ. ?] Vì vậy, một này sự kiện đó sẽ được bắt gặp khi bạn 389 00:24:35,480 --> 00:24:39,710 thực sự gõ vào một cụ thể tế bào trong tableview của bạn, 390 00:24:39,710 --> 00:24:43,570 hãy chỉ nói trong thư của bạn hoặc trong ứng dụng danh bạ của bạn. 391 00:24:43,570 --> 00:24:48,180 >> Bên trong là một chức năng có ban đầu không làm gì. 392 00:24:48,180 --> 00:24:51,950 Các chức năng không làm bất cứ điều gì theo mặc định. 393 00:24:51,950 --> 00:24:55,540 Nhưng bạn có thể chỉ định những gì các chức năng không có gì, 394 00:24:55,540 --> 00:24:59,610 cho những gì bạn muốn trong ứng dụng của bạn. 395 00:24:59,610 --> 00:25:01,610 Công cụ rất thuận tiện. 396 00:25:01,610 --> 00:25:06,840 Và với tất cả những gì đang được nói, tôi về cơ bản 397 00:25:06,840 --> 00:25:11,430 bao gồm một số cú pháp rất cơ bản và Khái niệm cơ bản cho Objective C 398 00:25:11,430 --> 00:25:15,860 lập trình, và chúng ta có thể làm một số mã s. 399 00:25:15,860 --> 00:25:17,980 Nhiều chi tiết thú vị. 400 00:25:17,980 --> 00:25:21,070 Vì vậy, s đang thực sự là một chút chút áp đảo 401 00:25:21,070 --> 00:25:23,330 khi bạn mở nó lần đầu tiên. 402 00:25:23,330 --> 00:25:26,640 >> Một lưu ý nhanh chóng, vì vậy nếu bạn muốn làm phát triển iOS, 403 00:25:26,640 --> 00:25:29,630 Tôi rất khuyên bạn có một máy Mac. 404 00:25:29,630 --> 00:25:33,930 Bởi vì làm phát triển iOS trên Windows thực sự là, thực sự khó khăn. 405 00:25:33,930 --> 00:25:37,560 Đó là khả thi, nhưng nó thực sự khó khăn. 406 00:25:37,560 --> 00:25:40,610 Và bạn chắc chắn làm không muốn sử dụng g chỉnh sửa. 407 00:25:40,610 --> 00:25:47,950 Vì vậy, trong s mã chúng tôi có khu vực khác nhau. 408 00:25:47,950 --> 00:25:53,050 Khi bạn lần đầu tiên mở ra của mã bạn sẽ thấy một khu vực chuyển hướng, 409 00:25:53,050 --> 00:25:57,470 mà cơ bản cho bạn thấy tất cả các file đó là trong dự án hiện tại của bạn. 410 00:25:57,470 --> 00:26:03,590 >> Bạn có một vùng thanh công cụ, mà về cơ bản là quản lý điểm, 411 00:26:03,590 --> 00:26:08,570 hoặc một số ít nhanh các công cụ về s mã chính nó. 412 00:26:08,570 --> 00:26:11,140 Và đây là khu vực biên tập thực tế. 413 00:26:11,140 --> 00:26:15,900 Khu vực này là g chỉnh sửa rất giống nhau, nhưng tốt hơn nhiều so với g chỉnh sửa. 414 00:26:15,900 --> 00:26:21,150 Và trong lĩnh vực quyền này, là được gọi là các khu tiện ích. 415 00:26:21,150 --> 00:26:27,170 Khu vực này trở nên thực sự tiện dụng khi bạn đang tạo ra giao diện hoặc chỉ định 416 00:26:27,170 --> 00:26:30,070 một số các thiết lập nhanh cho ứng dụng của bạn. 417 00:26:30,070 --> 00:26:34,570 >> Và khu vực cuối cùng là gỡ lỗi. 418 00:26:34,570 --> 00:26:37,970 Khu vực này bao gồm các giao diện điều khiển. 419 00:26:37,970 --> 00:26:43,170 Vì vậy, bất cứ khi nào bạn nói printf, hoặc trong trường hợp của chúng tôi NSLog, 420 00:26:43,170 --> 00:26:47,330 tất cả các kết quả của bạn sẽ được in ở đây. 421 00:26:47,330 --> 00:26:48,260 Tất cả phải không? 422 00:26:48,260 --> 00:26:52,090 Tôi đoán chúng ta có thể thực sự làm rất nhanh chóng một ví dụ cho lập trình iOS. 423 00:26:52,090 --> 00:26:54,220 Và chúng ta hãy thực sự mở mã lên s. 424 00:26:54,220 --> 00:26:57,210 425 00:26:57,210 --> 00:27:01,346 Vì vậy, mỗi khi bạn mở mã lên s, đó là sẽ hiện lên một cái gì đó như thế. 426 00:27:01,346 --> 00:27:03,220 Nó sẽ yêu cầu bạn làm những gì bạn muốn làm gì? 427 00:27:03,220 --> 00:27:06,830 Bạn có muốn bắt đầu một cái gì đó ngẫu nhiên, một sân chơi, về cơ bản bạn 428 00:27:06,830 --> 00:27:11,250 chỉ có thể kiểm tra mã mà không thực hành cho bất kỳ ứng dụng. 429 00:27:11,250 --> 00:27:13,020 >> Bạn có muốn tạo một dự án mới? 430 00:27:13,020 --> 00:27:16,660 Hoặc bạn có muốn tiếp tục làm việc trên các dự án hiện tại không? 431 00:27:16,660 --> 00:27:20,270 Trong trường hợp của chúng tôi, chúng tôi đang đi để tạo ra một dự án mới. 432 00:27:20,270 --> 00:27:22,980 Vì vậy, nó thực sự tốt đẹp, s mã thực sự có đã 433 00:27:22,980 --> 00:27:26,820 cho bạn một số mẫu cho việc tạo ra các đối tượng. 434 00:27:26,820 --> 00:27:32,680 Nếu bạn muốn làm một trò chơi, s đang thực sự có một mẫu trò chơi dành cho bạn, 435 00:27:32,680 --> 00:27:36,890 có ứng dụng trang dựa, tab dựa trên ứng dụng. 436 00:27:36,890 --> 00:27:39,280 Trong trường hợp này, chúng ta sẽ để làm một cái gì đó rất đơn giản, 437 00:27:39,280 --> 00:27:43,230 và chúng ta sẽ sử dụng một ứng dụng nhìn duy nhất. 438 00:27:43,230 --> 00:27:48,270 >> Sau đó chỉ là những gì bạn muốn gọi sản phẩm của bạn, và tên của bạn là gì, 439 00:27:48,270 --> 00:27:52,760 nhận dạng của bạn là gì, và ngôn ngữ gì để bạn sử dụng. 440 00:27:52,760 --> 00:27:57,060 Ở đây chúng ta không muốn kiểm tra sử dụng Core Data. 441 00:27:57,060 --> 00:28:00,170 Core liệu cơ bản là một databasing iOS. 442 00:28:00,170 --> 00:28:05,360 Nếu bạn làm Core Data, s đang đi để xác định 443 00:28:05,360 --> 00:28:07,710 nhiều lớp phức tạp hơn cho bạn. 444 00:28:07,710 --> 00:28:12,740 Vì vậy, để giữ cho mọi thứ đơn giản, chúng tôi chỉ cần đi làm mà không có Core Data 445 00:28:12,740 --> 00:28:15,290 ngay bây giờ. 446 00:28:15,290 --> 00:28:18,030 >> Vấn đề chúng tôi đang đi để được sử dụng là vấn đề that-- 447 00:28:18,030 --> 00:28:23,770 chúng ta sẽ được tạo ra là chúng ta về cơ bản muốn nhập Mario từ C 448 00:28:23,770 --> 00:28:25,437 để một ứng dụng iOS. 449 00:28:25,437 --> 00:28:26,645 Vì vậy, chúng ta hãy gọi đó là Mario-iOS. 450 00:28:26,645 --> 00:28:31,230 451 00:28:31,230 --> 00:28:34,880 Tất nhiên bạn có thể chỉ định những gì bạn muốn đặt vào dự án của bạn. 452 00:28:34,880 --> 00:28:37,870 Và ở đó chúng ta đi. 453 00:28:37,870 --> 00:28:41,390 >> Vì vậy, đây là một chút áp đảo, nhưng điều này là thực sự 454 00:28:41,390 --> 00:28:43,540 những gì chúng ta chỉ thấy trên các slide. 455 00:28:43,540 --> 00:28:49,710 Và khu vực đầu tiên chúng ta thấy ngay bây giờ về cơ bản là cấu hình dự án. 456 00:28:49,710 --> 00:28:53,390 Vì vậy, tất cả mọi thứ bạn muốn làm dự án, loại thiết bị, 457 00:28:53,390 --> 00:28:58,810 hãy chỉ nói những gì loại thiết bị bạn có muốn ứng dụng của bạn xuất hiện trên? 458 00:28:58,810 --> 00:29:01,280 Có iPhone, iPad hoặc phổ? 459 00:29:01,280 --> 00:29:04,660 Vì vậy, định hướng thiết bị, tất cả các công cụ này. 460 00:29:04,660 --> 00:29:08,490 Không phải là rất quan trọng, nhưng có thể được, nhưng điều này 461 00:29:08,490 --> 00:29:11,050 là một nơi mà bạn đã thiết lập dự án của bạn nếu bạn thực sự 462 00:29:11,050 --> 00:29:15,180 muốn triển khai đến các cửa hàng Apple. 463 00:29:15,180 --> 00:29:20,420 >> Được rồi, chúng ta hãy nhìn vào cái gì đó là bên trong mã của chúng tôi. 464 00:29:20,420 --> 00:29:22,360 Hãy đi qua các hoa file. 465 00:29:22,360 --> 00:29:30,140 Và đây là tất cả các tập tin mà đã đi kèm với các mẫu, rất đẹp. 466 00:29:30,140 --> 00:29:35,980 Vì vậy, khi chúng ta bấm vào một trong số họ đây là những gì nó trông như thế nào. 467 00:29:35,980 --> 00:29:38,530 Rất giống với g chỉnh sửa. 468 00:29:38,530 --> 00:29:41,340 Nhưng bạn có thể thấy rằng làm nổi bật cú pháp có lẽ là 469 00:29:41,340 --> 00:29:42,780 một chút đẹp hơn. 470 00:29:42,780 --> 00:29:45,610 Và nó thực sự nhiều hơn nữa mạnh mẽ hơn chỉnh sửa g. 471 00:29:45,610 --> 00:29:49,970 Và bạn có thể tự động hoàn toàn rất nhiều thứ cho bạn, 472 00:29:49,970 --> 00:29:52,370 như chúng ta sẽ thấy rất nhanh chóng. 473 00:29:52,370 --> 00:29:54,100 >> Chúng ta hãy mở khu gỡ lỗi là tốt. 474 00:29:54,100 --> 00:30:02,790 475 00:30:02,790 --> 00:30:07,000 Được rồi, chúng ta có thể thấy, giao diện điều khiển là phải ở đây. 476 00:30:07,000 --> 00:30:13,840 Đây là những gì bạn sẽ thấy nơi bạn đang ở trong printf hay nsloging một cái gì đó. 477 00:30:13,840 --> 00:30:17,155 Vì vậy mà không có thêm ado, chúng ta hãy thực sự biên dịch các ứng dụng và xem những gì sẽ xảy ra. 478 00:30:17,155 --> 00:30:20,000 479 00:30:20,000 --> 00:30:23,410 Một tính năng cần thiết cho s mã, là của mã 480 00:30:23,410 --> 00:30:25,850 đi kèm với một mô phỏng iPhone. 481 00:30:25,850 --> 00:30:29,820 Vì vậy, bạn không cần phải có một iPhone thử dự án của bạn, 482 00:30:29,820 --> 00:30:34,440 s mã có thể mô phỏng cho rằng bạn, như chúng ta có thể thấy ngay bây giờ. 483 00:30:34,440 --> 00:30:36,406 >> Nó khá đẹp. 484 00:30:36,406 --> 00:30:38,640 Nó lấy một ít chút thời gian để biên dịch 485 00:30:38,640 --> 00:30:43,040 và về cơ bản chúng ta có một ứng dụng sản phẩm nào, 486 00:30:43,040 --> 00:30:44,640 mà thực sự không có gì. 487 00:30:44,640 --> 00:30:46,175 Nhưng nó biên dịch. 488 00:30:46,175 --> 00:30:47,380 Nó khá awesome. 489 00:30:47,380 --> 00:30:50,200 Nó tốt hơn nhiều so với C, huh? 490 00:30:50,200 --> 00:30:52,130 Được rồi, chúng ta hãy cố gắng thêm một cái gì đó. 491 00:30:52,130 --> 00:30:56,050 492 00:30:56,050 --> 00:31:02,650 Một tập tin đó là một chút lạ ở đây được gọi là kịch bản. 493 00:31:02,650 --> 00:31:08,020 Đây thực sự là một tuyệt vời, Tính năng tuyệt vời cho s mã. 494 00:31:08,020 --> 00:31:14,170 Bởi vì trong s mã, bạn thực sự có thể kéo và thả các yếu tố trên giao diện 495 00:31:14,170 --> 00:31:17,430 và nó sẽ thể hiện trực tiếp lên. 496 00:31:17,430 --> 00:31:18,055 Hãy cố gắng đó. 497 00:31:18,055 --> 00:31:21,230 498 00:31:21,230 --> 00:31:27,236 >> Chúng tôi thả một nhãn ở đây, "Hello World !!!" 499 00:31:27,236 --> 00:31:29,740 Chúng tôi có thể trung tâm đó. 500 00:31:29,740 --> 00:31:30,970 Khá mát mẻ. 501 00:31:30,970 --> 00:31:33,915 Bây giờ chúng ta hãy dừng chạy mô phỏng này. 502 00:31:33,915 --> 00:31:36,940 503 00:31:36,940 --> 00:31:38,700 Ở đây chúng ta có "Hello World !!!" 504 00:31:38,700 --> 00:31:40,810 Chúng tôi thậm chí còn không làm bất kỳ mã nào. 505 00:31:40,810 --> 00:31:42,750 Cái quái gì đang xảy ra? 506 00:31:42,750 --> 00:31:45,880 Đây là cách mạnh mẽ Interface Builder có thể được. 507 00:31:45,880 --> 00:31:48,030 Ai đó thậm chí còn nói rằng có lẽ bạn có thể chỉ 508 00:31:48,030 --> 00:31:52,800 hoàn thành một ứng dụng mà không cần văn bản có thể là một ngàn dòng mã 509 00:31:52,800 --> 00:31:54,820 chỉ bằng cách sử dụng giao diện Builder. 510 00:31:54,820 --> 00:31:59,680 Nhưng nó có lẽ không cách tốt nhất để làm điều đó. 511 00:31:59,680 --> 00:32:01,670 >> Bây giờ chúng ta hãy thực sự nhận được xuống để mã hóa. 512 00:32:01,670 --> 00:32:04,860 513 00:32:04,860 --> 00:32:08,330 Vì vậy, các cấu trúc cho các tập tin thực sự là thực sự thú vị 514 00:32:08,330 --> 00:32:15,610 bởi vì, như bạn có thể thấy, có Không có chức năng chính ở bất cứ đâu. 515 00:32:15,610 --> 00:32:17,466 Thấy không? 516 00:32:17,466 --> 00:32:19,340 Như chúng tôi đã đề cập trước, bạn có thể thấy rằng điều này 517 00:32:19,340 --> 00:32:22,830 là một tập tin thực thi cho một lớp học cụ thể. 518 00:32:22,830 --> 00:32:25,690 Nhưng không có bất cứ nơi nào chính. 519 00:32:25,690 --> 00:32:27,490 Vậy đâu là chính? 520 00:32:27,490 --> 00:32:31,970 Trên thực tế, có một chính, nhưng chính là thực sự ẩn từ bạn. 521 00:32:31,970 --> 00:32:34,560 Các chính là ở đây. 522 00:32:34,560 --> 00:32:37,120 Điều đó có vẻ quen thuộc. 523 00:32:37,120 --> 00:32:41,000 >> Vì vậy, về cơ bản những gì iOS đang làm bên chính 524 00:32:41,000 --> 00:32:43,540 là bất cứ khi nào chính là gọi, đó là cơ bản 525 00:32:43,540 --> 00:32:49,000 bất cứ khi nào ứng dụng được thực thi, nó tạo ra một đối tượng tên là appdelegate. 526 00:32:49,000 --> 00:32:52,980 527 00:32:52,980 --> 00:32:57,350 Như tôi đã đề cập trước đây, toàn bộ ứng dụng thực sự là một đối tượng của chính nó. 528 00:32:57,350 --> 00:33:02,270 Vì vậy, bằng cách này, về cơ bản Ứng dụng iOS là nói cho các trình biên dịch 529 00:33:02,270 --> 00:33:05,540 OK, tôi sẽ tạo ra một sản phẩm gọi là appdelegate, 530 00:33:05,540 --> 00:33:07,620 và đó là có được ứng dụng của tôi. 531 00:33:07,620 --> 00:33:09,640 Vì vậy, bạn cần phải đi qua đó appdelegate 532 00:33:09,640 --> 00:33:12,040 và xem những gì anh chàng đó là làm. 533 00:33:12,040 --> 00:33:14,850 Công việc của tôi là làm cho tôi. 534 00:33:14,850 --> 00:33:22,070 >> Và trong appdelegate bạn có thể thấy rằng có một số chức năng thực sự kỳ lạ, 535 00:33:22,070 --> 00:33:25,290 cũng thực sự phương pháp, Apple đã đưa cho bạn. 536 00:33:25,290 --> 00:33:27,464 Cái này là gì? 537 00:33:27,464 --> 00:33:31,010 Đây là những thực chỉ giao thức mà tôi đã nói đến. 538 00:33:31,010 --> 00:33:35,670 Vì vậy, đây là những sự kiện mà Apple đã đưa cho bạn để bắt đầu. 539 00:33:35,670 --> 00:33:38,050 Không có gì là trong một số các chức năng ngay bây giờ, 540 00:33:38,050 --> 00:33:40,820 nhưng nếu chúng ta muốn khởi tạo một cái gì đó cho các ứng dụng của chúng tôi 541 00:33:40,820 --> 00:33:46,140 trước khi đi vào hiển thị xem nào, chúng tôi làm điều đó ở đây. 542 00:33:46,140 --> 00:33:51,150 >> Bạn có thể chỉ cần đọc tên và tôi đoán sự kiện này thực sự là thực sự rõ ràng. 543 00:33:51,150 --> 00:33:54,160 544 00:33:54,160 --> 00:33:58,350 Vì vậy, hiện nay chính đã tạo một đối tượng cho appdelegate. 545 00:33:58,350 --> 00:34:05,220 Và những gì appdelegate là sẽ làm được thực sự còn ẩn từ bạn. 546 00:34:05,220 --> 00:34:09,250 Các appdelegate sắp bắt đầu tải các cổ ViewController. 547 00:34:09,250 --> 00:34:13,170 Vì vậy, về cơ bản nó sẽ bắt đầu tải lên tất cả các điểm mà bạn có 548 00:34:13,170 --> 00:34:17,500 và chỉ làm cho xem dựa trên hệ thống phân cấp. 549 00:34:17,500 --> 00:34:21,280 >> Vì vậy, trong trường hợp này, chúng ta chỉ có một điểm, đó là ở đây. 550 00:34:21,280 --> 00:34:25,060 Vì vậy, đó là quan điểm chỉ đó là sẽ được gọi. 551 00:34:25,060 --> 00:34:28,159 Logic ViewController là quyền ở đây. 552 00:34:28,159 --> 00:34:32,159 Đây là mã mà thực sự kiểm soát quan điểm chúng tôi chỉ thấy. 553 00:34:32,159 --> 00:34:33,679 Được rồi, chúng ta hãy làm một cái gì đó ở đây. 554 00:34:33,679 --> 00:34:44,030 555 00:34:44,030 --> 00:34:50,560 Vì vậy viewDidLoad âm thanh như một sự kiện, trong khi thực tế này cũng là một đại biểu, 556 00:34:50,560 --> 00:34:52,500 đây cũng là một giao thức. 557 00:34:52,500 --> 00:34:56,350 >> Vì vậy, bất cứ quan điểm được nạp, tất cả mọi thứ bên trong hàm 558 00:34:56,350 --> 00:34:57,920 sẽ được gọi. 559 00:34:57,920 --> 00:35:02,840 Trong trường hợp này, chúng ta sẽ thấy "Hello Tianyu! "Nếu chúng ta chạy chương trình. 560 00:35:02,840 --> 00:35:09,820 561 00:35:09,820 --> 00:35:12,842 Nó nhận được một chút chậm biên dịch các tập tin kịch bản. 562 00:35:12,842 --> 00:35:15,440 563 00:35:15,440 --> 00:35:18,190 Vâng thực sự, chúng tôi nhìn thấy một đầu ra cho nó. 564 00:35:18,190 --> 00:35:20,720 Đó là khá mát mẻ. 565 00:35:20,720 --> 00:35:22,000 Bây giờ chúng ta hãy thực sự làm Mario. 566 00:35:22,000 --> 00:35:25,400 567 00:35:25,400 --> 00:35:27,625 Tôi sẽ xác định hoạt động rất nhanh chóng. 568 00:35:27,625 --> 00:35:31,510 569 00:35:31,510 --> 00:35:54,245 marioWithLevels: kết quả (int) cấp. 570 00:35:54,245 --> 00:36:01,120 571 00:36:01,120 --> 00:36:06,410 >> Tất cả đúng, điều này thực sự là tuyệt vời Tính năng của s hoàn thành mã tự động. 572 00:36:06,410 --> 00:36:10,680 Vì vậy, khi bạn viết cho và gõ Enter, nó đã từ bỏ các mẫu 573 00:36:10,680 --> 00:36:12,325 cho bạn, mà là khá mát mẻ. 574 00:36:12,325 --> 00:36:50,480 575 00:36:50,480 --> 00:36:52,850 Điều đó sẽ trông thực sự quen thuộc với các bạn. 576 00:36:52,850 --> 00:36:55,940 577 00:36:55,940 --> 00:36:59,680 Xin lỗi, đó là lỗi của tôi. 578 00:36:59,680 --> 00:37:15,790 579 00:37:15,790 --> 00:37:18,120 Được rồi, mát mẻ. 580 00:37:18,120 --> 00:37:22,710 Logic rằng nên xem xét thật sự quen thuộc đến với bạn, đặc biệt là chỉ Mario. 581 00:37:22,710 --> 00:37:26,140 >> Nhưng bây giờ chúng tôi sẽ in ra giao diện điều khiển mỗi lần duy nhất, 582 00:37:26,140 --> 00:37:29,280 bởi vì chúng tôi muốn bằng cách nào đó giữ theo dõi những gì chúng tôi đang in. 583 00:37:29,280 --> 00:37:31,810 Chúng ta sẽ sử dụng kết quả bằng cách nào đó sau này, 584 00:37:31,810 --> 00:37:35,010 để hiển thị print ra kết quả cho người dùng. 585 00:37:35,010 --> 00:37:37,730 Vì vậy, thay vì chúng ta chỉ nslogging tất cả mọi thứ, 586 00:37:37,730 --> 00:37:42,410 mà chúng tôi đang lưu trữ tất cả mọi thứ vào một kết quả chức năng gọi điện, 587 00:37:42,410 --> 00:37:44,070 nhưng logic là chính xác như nhau. 588 00:37:44,070 --> 00:37:48,030 589 00:37:48,030 --> 00:37:51,800 Sau khi chúng tôi hoàn thành nó, chúng tôi chỉ cần in kết quả của chúng tôi. 590 00:37:51,800 --> 00:37:59,330 591 00:37:59,330 --> 00:38:04,970 >> Và ở đây thay vì in ra của tôi tên, chúng ta sẽ gọi một hàm. 592 00:38:04,970 --> 00:38:15,340 593 00:38:15,340 --> 00:38:18,090 Hãy xem những gì sẽ xảy ra. 594 00:38:18,090 --> 00:38:21,240 Rất tiếc, rõ ràng. 595 00:38:21,240 --> 00:38:24,320 Chúng tôi có một tốt đẹp kim tự tháp ít ra ở đây. 596 00:38:24,320 --> 00:38:28,370 Điều này về cơ bản là C, chúng tôi chỉ thao tác mà bạn gọi một chức năng 597 00:38:28,370 --> 00:38:30,010 và làm thế nào một chức năng như thế nào. 598 00:38:30,010 --> 00:38:31,560 Không có gì khác nhau cả. 599 00:38:31,560 --> 00:38:34,040 Nhưng điều này là thực sự không phải là rất thú vị ở đây, 600 00:38:34,040 --> 00:38:37,500 bởi vì chúng tôi không nhìn thấy bất cứ điều gì từ các ứng dụng iPhone. 601 00:38:37,500 --> 00:38:42,120 >> Vì vậy, nếu bạn thực sự có một chiếc iPhone app-- nếu bạn thực sự có Mario iOS ngay 602 00:38:42,120 --> 00:38:45,080 Hiện tại, bạn sẽ không để xem bất cứ điều gì 603 00:38:45,080 --> 00:38:49,450 có bất cứ điều gì để làm với Mario vì tất cả những kết quả đầu ra vào một giao diện điều khiển 604 00:38:49,450 --> 00:38:51,620 được ẩn từ người sử dụng. 605 00:38:51,620 --> 00:38:53,850 Đây là những gì bạn nhìn thấy, mà là "Hello World !!!" 606 00:38:53,850 --> 00:38:55,720 Không tốt. 607 00:38:55,720 --> 00:39:03,090 Bây giờ chúng ta hãy cố gắng làm cho người sử dụng xem chính xác những gì chúng tôi đang in ra. 608 00:39:03,090 --> 00:39:06,000 Vì vậy, chúng tôi không cần phải dán nhãn nữa. 609 00:39:06,000 --> 00:39:09,800 Hãy thử và tìm ra một cái gì đó khác mà có thể là hữu ích. 610 00:39:09,800 --> 00:39:12,140 >> Có thực sự là một yếu tố đó được gọi là 611 00:39:12,140 --> 00:39:16,460 lĩnh vực văn bản, trong đó có thể rất hữu ích cho chúng ta. 612 00:39:16,460 --> 00:39:19,880 Về cơ bản nó sẽ hiển thị một khu vực của văn bản có thể chỉnh sửa. 613 00:39:19,880 --> 00:39:22,320 Vì vậy, trông thực sự hữu ích. 614 00:39:22,320 --> 00:39:23,810 Bây giờ chúng ta hãy kéo nó và thả nó. 615 00:39:23,810 --> 00:39:26,880 616 00:39:26,880 --> 00:39:32,670 Wow, chúng ta có một cái nhìn văn bản theo quan điểm của chúng tôi, thực sự ưa thích. 617 00:39:32,670 --> 00:39:35,430 Đó là một chút quá lớn. 618 00:39:35,430 --> 00:39:38,150 Hãy làm cho nó nhỏ hơn. 619 00:39:38,150 --> 00:39:40,290 Đặt nó vào trung tâm. 620 00:39:40,290 --> 00:39:43,760 Làm cho nó nhỏ hơn là tốt. 621 00:39:43,760 --> 00:39:50,110 >> Bây giờ chúng ta có một cái nhìn văn bản, mà chúng ta có thể được sử dụng để hiển thị các kết quả cuối cùng của chúng tôi. 622 00:39:50,110 --> 00:39:52,860 Nhưng ngay bây giờ nó chắc chắn sẽ không làm việc 623 00:39:52,860 --> 00:39:56,970 bởi vì có những no-- ViewController chúng ta chỉ 624 00:39:56,970 --> 00:40:03,010 xác định không biết rằng có một cái nhìn văn bản ra khỏi đó. 625 00:40:03,010 --> 00:40:06,550 Vì vậy, chúng ta cần phải bằng cách nào đó liên kết các điểm văn bản chúng ta chỉ 626 00:40:06,550 --> 00:40:11,660 tạo ra với các lớp học mà đã đến với chúng tôi. 627 00:40:11,660 --> 00:40:14,860 >> Cách chúng tôi làm điều đó là thực sự rất kỳ diệu. 628 00:40:14,860 --> 00:40:18,190 Vì vậy, mở ra cốt truyện. 629 00:40:18,190 --> 00:40:22,220 Có một đặc biệt [không nghe] được gọi là [? trợ lý?] [Không nghe thấy]. 630 00:40:22,220 --> 00:40:25,190 Khi bạn nhấp vào đó, nó sẽ mở hai tập tin. 631 00:40:25,190 --> 00:40:29,425 Một là một lớp và một trong những khác là một điểm tương ứng cho nó. 632 00:40:29,425 --> 00:40:31,920 Nó rất, rất hữu ích. 633 00:40:31,920 --> 00:40:35,950 Và chúng ta hãy đi qua các tập tin h. 634 00:40:35,950 --> 00:40:39,110 Kiểm soát, điều này là [Không nghe thấy] logic. 635 00:40:39,110 --> 00:40:47,280 Kiểm soát báo chí và kéo xem văn bản vào tờ khai. 636 00:40:47,280 --> 00:40:48,780 Chúng tôi sẽ gọi outputView đó. 637 00:40:48,780 --> 00:40:52,189 638 00:40:52,189 --> 00:40:53,670 Kết nối. 639 00:40:53,670 --> 00:40:59,420 Vì vậy, ở đây chúng tôi đã tuyên bố tình mới tài sản cho lớp ViewController của chúng tôi. 640 00:40:59,420 --> 00:41:02,300 Và các tài sản mới chỉ xem văn bản 641 00:41:02,300 --> 00:41:05,000 chúng tôi đã tạo ra trong xây dựng giao diện. 642 00:41:05,000 --> 00:41:07,990 Vì vậy, trong cách mà chúng ta có thể truy cập tất cả các dữ liệu 643 00:41:07,990 --> 00:41:13,630 và vận dụng tất cả mọi thứ bên trong đó là quan điểm đầu ra, mà là awesome. 644 00:41:13,630 --> 00:41:19,260 >> Vì vậy, trong thực tế mã của chúng tôi, chúng ta hãy làm một cái gì đó với nó. 645 00:41:19,260 --> 00:41:23,810 Vì vậy, thời gian này khi chúng ta giống như in ấn ra kết quả cuối cùng cho Mario, 646 00:41:23,810 --> 00:41:28,020 chúng ta đang ở trong không đăng nhập được bất cứ điều gì. 647 00:41:28,020 --> 00:41:30,080 Tôi có nghĩa là chúng ta có thể giữ báo cáo kết quả khai thác gỗ. 648 00:41:30,080 --> 00:41:41,490 Bên cạnh đó, chúng tôi gửi readout chúng ta chỉ 649 00:41:41,490 --> 00:41:47,622 tạo ra để nhìn ra, mà là một giao diện người dùng TextView chúng ta vừa tạo. 650 00:41:47,622 --> 00:41:48,746 Bây giờ chúng ta hãy xem những gì sẽ xảy ra. 651 00:41:48,746 --> 00:41:54,470 652 00:41:54,470 --> 00:41:56,620 Wow. 653 00:41:56,620 --> 00:41:59,130 Chúng tôi có một kim tự tháp trong các ứng dụng ngay bây giờ. 654 00:41:59,130 --> 00:42:06,720 >> Vì vậy, người dùng có thể nhìn thấy đầu ra của chúng tôi bởi vì chúng tôi đã sao chép các đầu ra từ mã của chúng tôi 655 00:42:06,720 --> 00:42:08,045 để giao diện của chúng tôi. 656 00:42:08,045 --> 00:42:10,950 Nó khá tốt. 657 00:42:10,950 --> 00:42:14,990 Nó thực sự không phải là thú vị vì chúng tôi can-- 658 00:42:14,990 --> 00:42:18,250 Tất cả các ứng dụng đang làm là thấy một kim tự tháp với bạn, 659 00:42:18,250 --> 00:42:20,520 và không có gì bạn có thể làm gì về nó. 660 00:42:20,520 --> 00:42:22,330 Đó không phải là đặc biệt thú vị. 661 00:42:22,330 --> 00:42:27,840 Vì vậy bây giờ chúng ta hãy làm một nút rằng sẽ xóa các quan điểm. 662 00:42:27,840 --> 00:42:30,290 Có vẻ như là một nút sẽ rất hữu ích. 663 00:42:30,290 --> 00:42:33,270 Kéo và thả. 664 00:42:33,270 --> 00:42:33,900 Nút một. 665 00:42:33,900 --> 00:42:36,730 666 00:42:36,730 --> 00:42:37,320 Nút hai. 667 00:42:37,320 --> 00:42:49,170 668 00:42:49,170 --> 00:42:52,052 >> Vì vậy, khi chúng ta bấm vào bên trái nút, quan điểm nên rõ ràng. 669 00:42:52,052 --> 00:42:53,635 Có nên không có gì trên màn hình. 670 00:42:53,635 --> 00:42:56,970 Và khi chúng ta nhấp vào nút bên phải, Mario, 671 00:42:56,970 --> 00:42:59,740 quan điểm là sẽ xuất hiện trở lại. 672 00:42:59,740 --> 00:43:05,510 Vì vậy, cách này chúng tôi cũng làm việc magic công cụ, kiểm soát và kéo 673 00:43:05,510 --> 00:43:08,740 để khai báo lớp trong các trợ lý director-- 674 00:43:08,740 --> 00:43:11,600 trong các trợ lý người xem. 675 00:43:11,600 --> 00:43:18,620 Trong trường hợp này, chúng tôi được chỉ định rằng đó phải là một hành động. 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 >> Vì vậy, ở đây chúng tôi đã tạo ra một hành động gọi là clearMario, 679 00:43:26,830 --> 00:43:34,210 đó là phương pháp mà có thể gọi bất cứ khi nào chúng ta nhấn nút rõ ràng. 680 00:43:34,210 --> 00:43:41,030 Vì vậy, trong thực tế mã của chúng ta, chúng ta hãy chỉ đưa văn bản đầu ra và đầu ra xem 681 00:43:41,030 --> 00:43:44,620 vào không có gì, và cách mà nó sẽ xuất hiện để được rõ ràng. 682 00:43:44,620 --> 00:43:47,500 683 00:43:47,500 --> 00:43:57,230 Thêm vào đó, chúng ta hãy tạo ra một phương pháp gọi là runMario. 684 00:43:57,230 --> 00:44:00,140 685 00:44:00,140 --> 00:44:03,436 Oh xin lỗi, đó không phải là một tài sản. 686 00:44:03,436 --> 00:44:12,107 687 00:44:12,107 --> 00:44:13,940 Tất cả phải, mà nên là một hành động là tốt. 688 00:44:13,940 --> 00:44:25,780 689 00:44:25,780 --> 00:44:34,740 >> Và khi chức năng đó là gọi là, chúng ta chỉ cần chạy Mario mười. 690 00:44:34,740 --> 00:44:37,620 691 00:44:37,620 --> 00:44:39,780 Hy vọng rằng sẽ tốt đẹp. 692 00:44:39,780 --> 00:44:41,120 Liệu nó biên dịch? 693 00:44:41,120 --> 00:44:43,920 Vâng. 694 00:44:43,920 --> 00:44:45,090 Bây giờ chúng ta có một cái nhìn. 695 00:44:45,090 --> 00:44:46,560 Chúng tôi có một đầu ra. 696 00:44:46,560 --> 00:44:50,040 Và chúng ta hãy xem những gì sẽ xảy ra. 697 00:44:50,040 --> 00:44:52,590 Đó là đi. 698 00:44:52,590 --> 00:44:54,500 Nó lại một lần nữa. 699 00:44:54,500 --> 00:44:57,620 Vì vậy, ở đây chúng tôi đã xác định loại chức năng 700 00:44:57,620 --> 00:45:00,400 sẽ được gọi khi chúng ta gõ vào một cái gì đó, 701 00:45:00,400 --> 00:45:03,160 khi chúng ta nhấn một nút cụ thể. 702 00:45:03,160 --> 00:45:07,890 Điều này về cơ bản là chương trình hành động mục tiêu 703 00:45:07,890 --> 00:45:12,510 cho sự kiện định hướng lập trình Objective C. 704 00:45:12,510 --> 00:45:15,030 >> Bên cạnh đó, nó không phải rất thú vị 705 00:45:15,030 --> 00:45:19,810 bởi vì chúng ta không thể thay đổi bao cao kim tự tháp sẽ được, 706 00:45:19,810 --> 00:45:23,640 vì vậy chúng tôi có thể muốn bằng cách nào đó lấy dữ liệu từ người dùng 707 00:45:23,640 --> 00:45:29,490 và thay đổi chiều cao của kim tự tháp dựa trên những gì họ sản xuất. 708 00:45:29,490 --> 00:45:32,900 Vì vậy, chúng ta sẽ làm điều đó. 709 00:45:32,900 --> 00:45:38,720 Vì vậy, thời gian này khi chúng ta gọi runMario, chúng ta không chỉ gọi Mario trực tiếp. 710 00:45:38,720 --> 00:46:06,280 711 00:46:06,280 --> 00:46:07,000 Tiêu đề của một này. 712 00:46:07,000 --> 00:46:22,180 713 00:46:22,180 --> 00:46:23,700 >> Đại biểu. 714 00:46:23,700 --> 00:46:25,160 Điều này là rất thú vị. 715 00:46:25,160 --> 00:46:26,720 Một đại biểu là gì? 716 00:46:26,720 --> 00:46:28,950 Tôi sẽ tự đặt ở đây. 717 00:46:28,950 --> 00:46:31,038 Và chúng ta sẽ thấy điều đó có nghĩa sau này. 718 00:46:31,038 --> 00:46:46,380 719 00:46:46,380 --> 00:46:51,120 Vì vậy, ở đây chúng tôi đã cơ bản tạo ra một Ví dụ cụ thể được gọi là một cảnh báo UI 720 00:46:51,120 --> 00:46:52,210 view. 721 00:46:52,210 --> 00:46:54,440 Một quan điểm UI cảnh báo là về cơ bản những gì bạn sẽ 722 00:46:54,440 --> 00:46:58,940 thấy mỗi khi một cái gì đó pops lên và yêu cầu bạn cho đầu vào, 723 00:46:58,940 --> 00:47:03,080 giống như những gì sẽ xảy ra khi bạn đang cố gắng để mua một cái gì đó trên một cửa hàng ứng dụng. 724 00:47:03,080 --> 00:47:14,250 >> Bên cạnh đó, sau khi bạn tạo ra nó, chúng tôi chỉ hiển thị các cảnh báo. 725 00:47:14,250 --> 00:47:20,090 726 00:47:20,090 --> 00:47:22,568 Được rồi, chúng ta chỉ cần một cách nhanh chóng kiểm tra sẽ làm việc đó hay không. 727 00:47:22,568 --> 00:47:31,105 728 00:47:31,105 --> 00:47:32,140 Đó là rất mát mẻ. 729 00:47:32,140 --> 00:47:55,370 730 00:47:55,370 --> 00:47:59,120 Bây giờ chúng ta hãy thực sự tạo ra một lĩnh vực đầu vào cho các báo UI. 731 00:47:59,120 --> 00:48:01,170 Đây là cách chúng tôi làm điều đó. 732 00:48:01,170 --> 00:48:07,490 Và chúng ta nên có một xem đầu vào cho các báo. 733 00:48:07,490 --> 00:48:09,020 Rất mát mẻ. 734 00:48:09,020 --> 00:48:12,330 Hãy chỉ nói 10. 735 00:48:12,330 --> 00:48:14,900 >> Nó không phải làm bất cứ điều gì ngay bây giờ bởi vì các cuộc gọi thực sự 736 00:48:14,900 --> 00:48:17,770 không thay đổi để thực hiện Mario. 737 00:48:17,770 --> 00:48:23,470 Vì vậy, điều này đã trở thành một chút hơi lạ vì bất cứ khi nào 738 00:48:23,470 --> 00:48:30,790 chúng tôi nhấn một nút xuống, bất cứ khi nào chúng tôi nhấn một nút trong xem cảnh báo, 739 00:48:30,790 --> 00:48:35,560 một cái gì đó sẽ xảy ra, nhưng nó không xảy ra. 740 00:48:35,560 --> 00:48:37,220 Làm thế nào để chúng ta nắm bắt điều đó không? 741 00:48:37,220 --> 00:48:41,280 Làm thế nào để chúng ta biết rằng một người sử dụng đã bác bỏ quan điểm cảnh báo 742 00:48:41,280 --> 00:48:45,630 và đã được nhập vào một số, vì ngay bây giờ không có gì thực sự xảy ra. 743 00:48:45,630 --> 00:48:50,450 >> Vâng, bạn có thể đoán nó đúng, phái đoàn. 744 00:48:50,450 --> 00:48:55,440 Vì vậy, ngoài tất cả các tờ khai, 745 00:48:55,440 --> 00:49:03,190 chúng ta cần thêm một phái đoàn mới nó được gọi là giao diện người dùng xem báo delegate. 746 00:49:03,190 --> 00:49:06,440 Vì vậy mà mỗi đơn tương tác hoặc sự kiện 747 00:49:06,440 --> 00:49:10,190 rằng chúng ta sẽ có với quan điểm UI cảnh báo 748 00:49:10,190 --> 00:49:14,100 sẽ bị xử lý bởi lớp của chúng tôi là tốt. 749 00:49:14,100 --> 00:49:26,297 >> Vì vậy, thêm vào đó, sẽ là xem nút bấm cảnh báo tại chỉ số. 750 00:49:26,297 --> 00:49:34,260 751 00:49:34,260 --> 00:49:37,730 Điều này đạt được. 752 00:49:37,730 --> 00:49:42,020 Vì vậy, trong trường hợp đó, chúng tôi có already-- vì vậy chúng tôi có 753 00:49:42,020 --> 00:49:46,210 phát hiện ra một giao thức sẽ xử lý các sự kiện khi 754 00:49:46,210 --> 00:49:51,320 chúng ta click vào nút Done trên quan điểm cảnh báo. 755 00:49:51,320 --> 00:49:55,976 Vì vậy, mỗi khi chúng ta bỏ qua view cảnh báo, điều này sẽ xảy ra. 756 00:49:55,976 --> 00:49:57,350 Hãy để tôi chỉ kiểm tra nó rất nhanh chóng. 757 00:49:57,350 --> 00:50:16,220 758 00:50:16,220 --> 00:50:19,300 Vâng thực sự, chúng tôi đã đạt được ở đây. 759 00:50:19,300 --> 00:50:22,210 >> Vì vậy, ở đây, chúng ta sẽ không thực sự có được là thực sự 760 00:50:22,210 --> 00:50:43,120 Vì vậy chúng tôi có được the-- muốn ra khỏi các văn bản mà chúng ta có trước đây 761 00:50:43,120 --> 00:50:45,350 nhập vào xem báo. 762 00:50:45,350 --> 00:50:48,505 Và dựa trên văn bản, chúng tôi sẽ hiển thị Mario. 763 00:50:48,505 --> 00:50:52,336 764 00:50:52,336 --> 00:50:55,480 Điều này rất nhanh chóng quay ra nếu nó thực sự hoạt động hay không. 765 00:50:55,480 --> 00:50:59,476 Vì vậy, trong trường hợp đó, nếu chúng ta đầu vào, hãy nói, 10, chúng ta sẽ thấy 10. 766 00:50:59,476 --> 00:51:02,740 767 00:51:02,740 --> 00:51:05,210 >> Rất tốt, chúng tôi có một số ở đây. 768 00:51:05,210 --> 00:51:06,470 Nó khá tốt. 769 00:51:06,470 --> 00:51:16,840 Bây giờ là bước cuối cùng sẽ be-- Vì vậy, các Bước cuối cùng chúng ta cần phải làm ngay bây giờ 770 00:51:16,840 --> 00:51:21,100 chỉ là một cuộc gọi với Mario mức độ dựa trên đầu vào 771 00:51:21,100 --> 00:51:23,270 mà chúng tôi đã đưa vào xem báo. 772 00:51:23,270 --> 00:51:26,920 Vì vậy, chúng ta cần phải chuyển đổi chuỗi này vào iOS. 773 00:51:26,920 --> 00:51:33,820 774 00:51:33,820 --> 00:51:35,496 Tràn tĩnh là rất tuyệt vời. 775 00:51:35,496 --> 00:51:44,930 776 00:51:44,930 --> 00:51:51,182 Và sau đó chúng ta chỉ cần gọi tự marioWithLevels giá trị. 777 00:51:51,182 --> 00:51:54,550 778 00:51:54,550 --> 00:51:56,284 Hãy xem sẽ thấy thực sự làm việc hay không. 779 00:51:56,284 --> 00:51:59,070 780 00:51:59,070 --> 00:52:01,550 >> Chúng tôi đã đưa ra một kim tự tháp. 781 00:52:01,550 --> 00:52:04,785 Hãy cố gắng để thay đổi chiều cao. 782 00:52:04,785 --> 00:52:06,530 Điều đó thực sự hoạt động. 783 00:52:06,530 --> 00:52:07,610 Đó là khá mát mẻ. 784 00:52:07,610 --> 00:52:10,420 Vì vậy, bây giờ bạn có thể chỉ đầu vào bất kỳ giá trị mà bạn muốn. 785 00:52:10,420 --> 00:52:12,440 Hãy chỉ nói bốn. 786 00:52:12,440 --> 00:52:14,260 Đó là khá tuyệt vời. 787 00:52:14,260 --> 00:52:17,090 Vì vậy, đây là cơ bản một ví dụ thực sự nhanh chóng 788 00:52:17,090 --> 00:52:23,170 làm thế nào để tạo ra một dự án tại của mã và làm thế nào để thực sự nhanh chóng dây lên 789 00:52:23,170 --> 00:52:26,220 một số các sự kiện thực sự đơn giản và chức năng. 790 00:52:26,220 --> 00:52:28,840 >> Vì vậy, các nguồn được đi được đưa lên mạng sau đó. 791 00:52:28,840 --> 00:52:33,400 Vì vậy, nếu bạn đang quan tâm trong cách iOS Mario hoạt động, 792 00:52:33,400 --> 00:52:38,360 Tôi sẽ đặt chính xác như nhau các dự án vào các trang web CS50 sau. 793 00:52:38,360 --> 00:52:41,260 Chúng tôi về cơ bản được thực hiện với các Mùa hè, và trước khi chúng tôi kết thúc 794 00:52:41,260 --> 00:52:45,190 Tôi chỉ muốn chỉ các bạn để một số tài nguyên thực sự tuyệt vời mà 795 00:52:45,190 --> 00:52:47,550 có sẵn trực tuyến. 796 00:52:47,550 --> 00:52:52,270 >> Rõ ràng là tài liệu hướng dẫn của Apple sẽ là rất hữu ích. 797 00:52:52,270 --> 00:52:57,630 Nhưng bên cạnh đó, tôi đặc biệt đề nghị bốn nguồn, học code, 798 00:52:57,630 --> 00:53:02,120 ngôi nhà trên cây, WWDC AppCoda và video. 799 00:53:02,120 --> 00:53:07,270 Mã trường và ngôi nhà trên cây là hai trang web chỗ học trực tuyến, 800 00:53:07,270 --> 00:53:10,210 trong đó đặc biệt chú trọng về công nghệ phần mềm. 801 00:53:10,210 --> 00:53:16,930 Đặc biệt đối với trường mã, họ có hướng dẫn thực sự tốt trên iOS. 802 00:53:16,930 --> 00:53:19,550 >> Đó là một ví dụ thực sự nhanh chóng cho nó. 803 00:53:19,550 --> 00:53:22,980 Họ thực sự tạo ra một sự cute-- nhìn vào đó chút iPhone dễ thương 804 00:53:22,980 --> 00:53:24,920 anh chàng ở đây, nó là khá tuyệt vời. 805 00:53:24,920 --> 00:53:31,010 Và cách họ giải thích Mục tiêu Cú pháp C là hoàn toàn rõ ràng. 806 00:53:31,010 --> 00:53:32,230 Ngôi nhà trên cây là như nhau. 807 00:53:32,230 --> 00:53:34,660 Và AppCoda là một diễn đàn. 808 00:53:34,660 --> 00:53:38,130 Nó thực sự là một blog đã chạy bởi một thực sự kinh nghiệm Objective C 809 00:53:38,130 --> 00:53:39,120 lập trình viên. 810 00:53:39,120 --> 00:53:43,950 Và tất cả những hướng dẫn trong AppCoda là khá ngắn và dễ dàng để thực hiện, 811 00:53:43,950 --> 00:53:45,390 rất khuyến khích. 812 00:53:45,390 --> 00:53:47,700 >> Và nếu bạn là một nhà phát triển, chắc chắn đi kiểm tra 813 00:53:47,700 --> 00:53:55,660 cách các đoạn video WWDC, nơi bạn có thể tìm hiểu về các chương trình mới nhất iOS 814 00:53:55,660 --> 00:53:58,250 kỹ thuật, các API và các thư viện. 815 00:53:58,250 --> 00:54:02,850 Vì vậy, đó là khá nhiều nó cho các buổi hội thảo. 816 00:54:02,850 --> 00:54:03,820 Cảm ơn bạn rất nhiều. 817 00:54:03,820 --> 00:54:08,040 Và tôi hy vọng bạn có vui vẻ tạo ứng dụng iOS của riêng bạn. 818 00:54:08,040 --> 00:54:09,302