Tianyu LIU: Hey, làm thế nào là nó đi tất cả mọi người? Và đây là iOS App chương trình mục tiêu của hội thảo c. Và tôi tên là Tianyu Liu. Tôi là một học Lowell ngay bây giờ, tập trung vào khoa học máy tính. Vì vậy, trong buổi hội thảo này tôi sẽ dạy cho các bạn một chút ít về làm thế nào để làm cho một ứng dụng. Yay, có được vui mừng cho nó. 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ế, 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? Tại sao iOS rất tuyệt vời? 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, đặc biệt là khi một CS50 sinh viên, là iOS sử dụng Objective C. Vâng, có một ngôn ngữ mới gọi là Swift, nhưng chúng tôi sẽ không sử dụng trong hội thảo này. Nếu bạn quan tâm trong Swift, có là một hội thảo độc lập về điều đó. Nhưng Objective C là cơ bản một superset của C. Nghĩa rằng tất cả mọi thứ bạn có thể sử dụng trong C được dịch sang Objective C rất dễ dàng. 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à về cơ bản giống hệt nhau, C và Objective C. Vì vậy, kể từ khi bạn đã thực hiện CS50 lên đến đây, bạn đã biết Objective C, ít nhất là 40%. Ngoài ra, Apple có thực sự API mạnh mẽ cho iOS. Có rất nhiều thực sự điên rồ điều bạn có thể làm gì với nó. Một trong số đó là một người nào đó thực sự tạo ra một ứng dụng iOS cho xe ô tô điều khiển, trong đó là khá thú vị. Có thể là một máy bay trực thăng là thú vị hơn. Nhưng đó là cách mạnh mẽ API iOS có thể được. Và như bạn có thể có tìm ra ngay bây giờ, 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 có sẵn cho bạn. Và tin tốt, cho mỗi Vấn đề duy nhất mà bạn có thể có thể nghĩ trong khi xây dựng của bạn dự án cuối cùng trong Objective C, có khả năng là một câu trả lời stack overflow. Nó chỉ là tuyệt vời. Bên cạnh đó, iOS thực sự là một nền tảng nơi bạn có thể đạt được một lớn khán giả với ít nỗ lực. Nó không giống như Android, nơi mọi thứ đều khá rời rạc. Tất cả mọi thứ iOS là thống nhất. Và miễn là bạn tạo một ứng dụng cho iPhone, bạn có thể rất dễ dàng cổng đó để iPad, iPad mini, hoặc kích thước iPhone khác nhau. Đây là tất cả thực sự thuận tiện. Và nó chỉ thực sự tốt gây ấn tượng cho bạn bè của bạn. Bạn chỉ có thể giữ một iPhone và nói với bạn bè của bạn hey, đây là những ứng dụng tôi làm. 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. Được rồi, giờ chúng ta hãy thực sự nhận được sang ngôn ngữ Objective C. 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ự. Như tôi đã đề cập trước Mục tiêu C Đó là cơ bản một superset của C. Vì vậy, rất nhiều cú pháp cơ bản là thực sự chính xác như nhau. Khai báo một biến và thêm hai biến cùng Đúng như chúng tôi đã thực hiện trong Mario. Không có gì mới ở đây. 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. 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]. Và bạn có thể làm điều kiện cũng giống như những gì bạn đã và đang làm trong bộ p trước đó của bạn. Tuy nhiên, Objective C không phải là hoàn toàn C, và có cái gì đó là loại lạ về nó. 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 bao gồm và sau đó một tên thư viện. Nhưng trong Objective C bạn gọi nhập khẩu đó. Về cơ bản nói năng, tên chỉ khác nhau. Và dây là thực sự là một chút lạ. Bạn có thể thấy rằng người đầu tiên điều đó là loại lạ là bạn có khá weird-- sorry-- bạn có một NS khá lạ đăng ký ở đây. Và điều thứ hai đó là loại lạ là bạn có một dấu hiệu trước thực sự tuyên bố chuỗi. 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, nó thực sự là một đối tượng. Chúng tôi sẽ giải thích mà sau này vì vậy không hoảng sợ nếu bạn không hiểu điều đó có nghĩa là gì. 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, nhưng trong Objective C chúng ta gọi là [không nghe được]. Bạn có thể tự hỏi đó là những gì. Đó là cơ bản printf, chỉ là một ngôn ngữ khác nhau. 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ự. Vâng nó chỉ ra rằng Mục tiêu thực sự C 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, NSString, NSArray, NSDictionary. Lý do được rằng ns thực sự là viết tắt của Bước tiếp theo, đó là một công ty Steve Jobs đã thành lập, đó là một công ty nơi ngôn ngữ Objective C được sinh ra. Vì vậy, đây là cơ bản truyền thống. Tôi biết đó là một chút kỳ lạ, nhưng đó là Apple. Vì vậy, cái gì mà là thậm chí lạ hơn là một khai báo hàm. Đ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ự không giống như C nữa. Những gì bạn có here-- bởi Cách đây không phải là một điểm nhấn, đây là một dấu trừ. Bạn có một dấu ngoặc dấu trừ vô hiệu và sau đó tên hàm. Hãy chỉ nói rằng nếu chúng tôi có hello thế giới, sau đó 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. Những gì được thực sự kỳ lạ là khi bạn đang có nhiều hơn một tham số đi vào cùng một chức năng mà sẽ được thực sự kỳ lạ như ở đây. Chúng tôi có một tên phương thức, gọi addInt tới [Không nghe thấy] và chúng tôi đang đi qua một tham số. Nhưng sau đó, chúng tôi có hơn gọi tên phương thức với. Và sau khi có chúng tôi đang đi qua tham số thứ hai. Đây thực sự là một chút kỳ lạ, nhưng tất cả các tờ khai chức năng theo cùng một khuôn mẫu như này. Chúng tôi có một dấu trừ để bắt đầu với. 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 là nó. Phương pháp là cơ bản một tên khác cho chức năng. Và chúng ta sẽ giải thích rằng sau khi chúng ta đang nói về đối tượng lập trình hướng. Trước tiên, bạn chỉ định sự trở lại gõ dấu ngoặc đơn bên trong, sau đó có những tên phương pháp. Bạn đang đi qua một tham số. 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 và về cơ bản viết cái gì ở đây nữa. Nó có thể là bất cứ điều gì bạn muốn. Trong trường hợp của chúng nó với. 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. Và sau đó sau đó bạn qua tham số b. Đây là một thực sự kỳ lạ ước nhưng chúng tôi sẽ thấy lý do tại sao Apple muốn để làm điều đó một cách nhanh chóng. Vì vậy, làm thế nào để bạn gọi chức năng? Kêu gọi một chức năng trong Mục tiêu C cũng khác nhau từ C. Trên thực tế, gọi một chức năng trong Objective C là giống như bạn đang nói chuyện với một ai đó. Ở đây chúng ta có tự ngã, mà được gọi là một đối tượng. Bạn đang nói về cơ bản các đối tượng tự để nói "Hello World!" Đó là làm thế nào để gọi hàm. Một đối tượng và một tên phương pháp kết hợp với nhau. 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. Hãy nhìn vào ví dụ thứ hai. Chúng tôi chỉ được xác định một phương pháp gọi là addInt với blah blah blah. Vì vậy, trong trường hợp này khi bạn đang gọi mà [cụ thể? tin nhắn?] nó sẽ trông giống như tự addInt: 10 với: 2. Nghe có vẻ như tiếng Anh. Mặc dù chức năng khai báo hàm là lạ, điểm của Mục tiêu của C mô hình phương pháp kê khai, là khi bạn đang gọi các chức năng hoặc các phương pháp nó sẽ âm thanh như tiếng Anh thực tế. Vì vậy, nó rất trực quan một khi bạn nhận được vào nó. Đặc biệt là trong trường hợp này, nơi bạn có thể cơ bản thấy rằng các tên hàm là loại tài liệu chính nó. Bạn không cần bất kỳ giải thích thêm để xem chính xác những gì đang xảy ra, những gì chính xác một tham số làm. Đ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. Lập trình hướng đối tượng là một trong những lập trình cơ bản kỹ thuật hoặc các mẫu mà là được sử dụng bởi Objective C. Objective C được gọi là Mục tiêu C, không C, vì một lý do thực sự tốt. Vì vậy, trước khi chúng tôi nhận được vào Cú pháp C Mục tiêu, Hãy thực sự nhanh chóng xem xét những gì chính xác là một đối tượng. Chúng tôi đã có thể làm một cái gì đó như đối tượng trước đó, mà đượ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 hoặc [? thử. ?] Vì vậy, nó là về cơ bản giống như một cấu trúc, nhưng nó mạnh hơn rất nhiều hơn thế. Một đối tượng có phương pháp và tài sản. Các phương pháp cơ bản là chức năng. Về cơ bản các chức năng mà một cụ thể cho một đối tượng nhất định. Và tài sản về cơ bản lĩnh vực bạn chỉ định trong cấu trúc. 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 mà có một số biến mà được cụ thể cho các đối tượng. 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. 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. Nó chỉ là một tên ưa thích. 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, 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. Và thậm chí toàn bộ các ứng dụng là một đối tượng để bắt đầu. Khái niệm rất thú vị. Và tại sao chúng ta muốn đối tượng lập trình hướng? 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. Hãy chỉ nói rằng khi bạn đang thực hiện trên bàn cờ, logic là sẽ được thực sự phức tạp. Bạn có 36 khác nhau miếng, do đó nếu bạn muốn viết logic cho tất cả 36 phần khác nhau trong cờ vua, đó là sẽ có rất nhiều chức năng khác nhau và các biến. Đó là rất nhiều rắc rối. 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 cho từng mảnh kiểm soát chính xác những gì họ làm. 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 có thể được trừu tượng hóa thành một đối tượng duy nhất. 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 là nó? Nó thì màu gì? Làm thế nào nó có thể di chuyển? Và bằng cách đó bạn có rất nhiều đơn giản hóa các logic của nó. 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, và mối quan hệ thứ bậc trong chương trình, rất đơn giản. Như chúng ta sẽ thấy lý do tại sao rất nhanh khi chúng tôi đang thực sự làm programming-- khi chúng tôi thực sự làm một mã S lập trình phiên sau đó. Vâng, thêm vào đó, lập trình hướng đối tượng chỉ là rất nhiều niềm vui. Bạn có để thiết kế đối tượng của riêng bạn. Bạn có để thiết kế những gì không nó trông giống như của chính mình. Không có câu trả lời đúng cho nó. Và nó hoàn toàn thú vị. Vì vậy, trong trình hướng đối tượng, hai khái niệm cơ bản sẽ được lớp học và dụ. Một lớp học là cơ bản một mẫu cho đối tượng. Và một ví dụ về cơ bản là một đối tượng cụ thể. Hãy chỉ nói rằng bạn đang làm cho một cookie. Trong trường hợp này, mỗi đơn cookie, bạn thực sự kết thúc với là có được một đối tượng. 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. Một lớp học về cơ bản là một bản mẫu. Và ví dụ cụ thể sẽ là một trong đối tượng được tạo ra của lớp đó. Và một ví dụ sẽ được tạo ra dựa vào khai báo lớp, như chúng ta sẽ thấy trong các slide sau. 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]. 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. Các đối tượng nên have-- lớp con mèo nên có một số thuộc tính và phương pháp. Những loại tài sản nên việc lớp have-- mèo nên có? Ví dụ, màu sắc, tuổi và giống, những sẽ biến cụ thể đối với mỗi con mèo. Và đó là một số điều mà chúng tôi sử dụng để mô tả một con mèo. Những loại phương pháp, hoặc những gì có thể một con mèo làm gì? Một số ví dụ nhanh chóng sẽ đuổi chuột, ăn cá hoặc chỉ meo. Đây là một thực sự nhanh chóng ví dụ về con mèo lớp. Và một thực sự cụ thể mèo đối tượng sẽ là một con mèo nơi chúng tôi chỉ định màu sắc, độ tuổi và giống. 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. 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ể đến đối tượng cụ thể để làm cho nó độc lập. Và khi bạn đang gọi một phương pháp trong một đối tượng, 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. Có lẽ bạn sẽ in ra một cái gì đó như "Xin chào thế giới! Meow. " Khá dễ thương. Được rồi, chúng ta hãy chỉ nhận được vào một số chi tiết và xem chính xác những gì mà dịch vào là lập trình iOS. 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. Một tập tin là ở đây, mà được gọi là giao diện. Tập tin khác là ở đây, mà được gọi là thực hiện. Điển hình giao diện sẽ có extension.h như chúng ta đã thấy trong các thư viện C. Và tập tin thực hiện là sẽ có extension.n. Đó là loại lạ. 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 hai. 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. Đó được gọi là thừa kế. Chúng tôi về cơ bản kế thừa mèo lớp từ lớp đối tượng. 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 sẽ được tự động xác định trong một lớp học mèo là tốt. 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. Điều đó thực sự trông giống như một cái gì đó bạn đã làm trước đó. Nó trông giống như cấu trúc. Đó là cơ bản cú pháp khai báo struct, và đó là hoàn toàn chính xác. Và kể từ khi tôi đã đề cập trước, sự khác biệt một struct và một đối tượng, một trong những khác biệt cơ bản 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. 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, chúng tôi chỉ định một số phương pháp. Hãy chỉ nói rằng ở đây chúng tôi có hai phương pháp, một là meo meo, một số khác là đuổi chuột. 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 mẫu tờ khai. Bạn có thể muốn được đi qua một con chuột. Và có thể bạn sẽ muốn để trả lại một biểu bool nếu con mèo của bạn có thành công bắt chuột hay không. Đây là giao diện, nhưng chúng ta có thể thấy rằng giao diện thực không làm bất cứ điều gì. 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. Vì vậy để cho các chương trình để làm một cái gì đó, chúng ta cần phải có các tập tin thực thi. 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. Sau khi chúng tôi nhập khẩu giao diện, chúng ta định nghĩa phương pháp. Hãy chỉ nói rằng đây meow chỉ cần sẽ in ra "Hello World!" bàn điều khiển. Và sau khi thực hiện tập tin, chúng tôi đang thực hiện khá nhiều. Điều này về cơ bản là một lớp học khai cho một lớp. 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? 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. Trước tiên, bạn xác định rằng đây là một con trỏ mèo, 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ỏ. Và bạn gọi lớp, gọi cho họ như alloc, mà về cơ bản là malloc, 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. Sau đó bạn có một đối tượng đã và bạn chỉ cần khởi tạo nó. Đây chỉ là quy ước. 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ụ. Gán thuộc tính được thực sự khá đơn giản. Nó rất giống với những gì bạn đang làm khi bạn đang gán một số cụ thể trường bên trong của cấu trúc. Bạn chỉ có biến tên, tên tài sản, và chỉ định một giá trị cụ thể cho nó. Và gọi một phương pháp là rất giống nhau. Việc gọi một phương thức là về cơ bản những gì tôi nói về để gọi bất kỳ phương pháp trong Objective C. Bạn đang đi qua một đối tượng, trong trường hợp này nó sẽ là myCat, và bạn đang đi qua các tên phương pháp. Vì nếu bạn đang nói chuyện với các đối tượng, myCat, mà bạn nên meo. Nó khá thú vị. Sau đó, có một mẫu thiết kế thiết yếu hơn rằng chúng ta cần nói chuyện về trước khi nhận mã S thực tế. Đó là mẫu thiết kế được gọi là sự kiện định hướng lập trình. Đây có lẽ cũng là một trong những nhất ý tưởng cơ bản trong lập trình iOS. 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, nhưng nó không thực sự là đáng sợ. Cũng trong thực tế, bạn có đã làm điều đó trước. Đây là một trong những dòng bạn đã có thể đã viết trong cuối [Không nghe thấy] của CS50, google.maps.event.addListener (marker, "Click", function () {}) :. Bằng cách gọi dòng này bạn về cơ bản lệnh cho máy tính 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, sử dụng chức năng đó. Điều này là rất khác nhau từ những gì bạn làm trong mario.c. 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, và bạn đang làm. Đây là loại giống như một chương trình bắn. Sự kiện định hướng chương trình rất, rất khác nhau. 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. Bạn chỉ cần vào Facebook một lần và nó được thực hiện. Nó cung cấp cho bạn một số đầu ra và bạn không bao giờ có nó trở lại. Bạn không bao giờ có bất cứ điều gì nhiều hơn. Vì vậy, ở đây, đặc biệt là mẫu, chúng tôi sử dụng là theo sự kiện, do đó mọi chức năng sẽ được bắt dựa trên những gì sự kiện đã xảy ra. Ví dụ, nếu chúng ta có một nút và chúng tôi chỉ định rằng bất cứ khi nào nút được nhấn vào, gọi hàm gọi là "Hello World!" Bằng cách đó chúng ta có thể thực sự quản lý logic chức năng chảy một cách rất linh hoạt. Người dùng có thể làm hoặc gọi một chức năng mà đã được gọi. Nó hoàn toàn dựa trên những gì người dùng thực. 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. Và tin tốt là nó thực sự không phải là một khái niệm mới. Các bạn đã thực hiện rằng trong vấn đề cuối cùng thiết lập. Vì vậy, trong Objective C có ba biểu đồ khác nhau cho lập trình hướng sự kiện. Các sơ đồ đầu tiên là gọi là hành động mục tiêu, nơi bạn ràng buộc một nút báo chí với một số chức năng. 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. Đây là hành động mục tiêu rất đơn giản. Điều thứ hai là thực sự là khó khăn nhất, nó được gọi là phái đoàn trên giao thức. Chúng tôi sẽ giải thích mà rất chi tiết sau. Và cách thứ ba là thông báo. Điều này thực sự không rất quan trọng như xa 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 trong dự án cuối cùng của bạn là khá thấp. Vì vậy, chúng ta sẽ bỏ qua phần đó. Và chúng tôi sẽ đi sâu thành đoàn trên giao thức. Vì vậy, những gì chính xác là một giao thức? Hoặc một phái đoàn chính xác những gì là? Hãy nói về giao thức để bắt đầu. Các giao thức là gì, nhưng các sự kiện. Nhưng những sự kiện này được đưa ra để bạn bởi Apple để bắt đầu. Ví dụ, tôi không hoàn toàn chắc chắn có bao nhiêu bạn guys sử dụng ban đầu của Apple ứng dụng mail hoặc liên lạc, nhưng mỗi khi bạn di chuyển bảng và nhấn tế bào cụ thể trên bàn, đó là một sự kiện. Và nếu bạn muốn làm rằng sự kiện của mình, nó thực sự là một chút khó khăn. 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 sự kiện để làm một cái gì đó của riêng bạn. Các giao thức là thực sự thực sự, thực sự sử dụng rộng rãi Objective C. Cũng trong Thực tế, mỗi ứng dụng duy nhất có một cái gì đó bắt ứng dụng delegate. 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. Hãy chỉ nói rằng đó là một sự kiện cho các ứng dụng đã tải. 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, sau khi bạn đóng các ứng dụng, hoặc sau khi bạn đưa iPhone vào giấc ngủ. Đây là tất cả các sự kiện mà có đã được trao cho bạn. Và ban đầu bên trong các hạt sẽ không có thực. 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, 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. Đoàn về cơ bản là nói cho các lớp rằng bạn nên xử lý các giao thức này. Đó là một chút khó hiểu, nhưng nó sẽ được rõ ràng hơn khi chúng ta làm các mã trong hành động. 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 rằng nếu chúng ta làm đoàn một lớp cụ thể, chúng tôi về cơ bản có thể xử lý tất cả các loại sự kiện sử dụng bất kỳ lớp chúng ta có, công cụ rất thuận tiện. Vì vậy, một ví dụ nhanh chóng cho Đoàn về giao thức sẽ được những gì tôi vừa nói đến. Giao thức này đặc biệt được gọi là tableview [Không nghe thấy] chọn vai trò 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 thực sự gõ vào một cụ thể tế bào trong tableview của bạn, hãy chỉ nói trong thư của bạn hoặc trong ứng dụng danh bạ của bạn. Bên trong là một chức năng có ban đầu không làm gì. Các chức năng không làm bất cứ điều gì theo mặc định. Nhưng bạn có thể chỉ định những gì các chức năng không có gì, cho những gì bạn muốn trong ứng dụng của bạn. Công cụ rất thuận tiện. Và với tất cả những gì đang được nói, tôi về cơ bản 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 lập trình, và chúng ta có thể làm một số mã s. Nhiều chi tiết thú vị. Vì vậy, s đang thực sự là một chút chút áp đảo khi bạn mở nó lần đầu tiên. Một lưu ý nhanh chóng, vì vậy nếu bạn muốn làm phát triển iOS, Tôi rất khuyên bạn có một máy Mac. Bởi vì làm phát triển iOS trên Windows thực sự là, thực sự khó khăn. Đó là khả thi, nhưng nó thực sự khó khăn. Và bạn chắc chắn làm không muốn sử dụng g chỉnh sửa. Vì vậy, trong s mã chúng tôi có khu vực khác nhau. 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, 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. Bạn có một vùng thanh công cụ, mà về cơ bản là quản lý điểm, hoặc một số ít nhanh các công cụ về s mã chính nó. Và đây là khu vực biên tập thực tế. 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. Và trong lĩnh vực quyền này, là được gọi là các khu tiện ích. 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 một số các thiết lập nhanh cho ứng dụng của bạn. Và khu vực cuối cùng là gỡ lỗi. Khu vực này bao gồm các giao diện điều khiển. 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, tất cả các kết quả của bạn sẽ được in ở đây. Tất cả phải không? 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. Và chúng ta hãy thực sự mở mã lên s. 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ế. Nó sẽ yêu cầu bạn làm những gì bạn muốn làm gì? 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 chỉ có thể kiểm tra mã mà không thực hành cho bất kỳ ứng dụng. Bạn có muốn tạo một dự án mới? 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? 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. Vì vậy, nó thực sự tốt đẹp, s mã thực sự có đã cho bạn một số mẫu cho việc tạo ra các đối tượng. 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, có ứng dụng trang dựa, tab dựa trên ứng dụng. Trong trường hợp này, chúng ta sẽ để làm một cái gì đó rất đơn giản, và chúng ta sẽ sử dụng một ứng dụng nhìn duy nhất. 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ì, nhận dạng của bạn là gì, và ngôn ngữ gì để bạn sử dụng. Ở đây chúng ta không muốn kiểm tra sử dụng Core Data. Core liệu cơ bản là một databasing iOS. Nếu bạn làm Core Data, s đang đi để xác định nhiều lớp phức tạp hơn cho bạn. 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 ngay bây giờ. Vấn đề chúng tôi đang đi để được sử dụng là vấn đề that-- chúng ta sẽ được tạo ra là chúng ta về cơ bản muốn nhập Mario từ C để một ứng dụng iOS. Vì vậy, chúng ta hãy gọi đó là Mario-iOS. 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. Và ở đó chúng ta đi. Vì vậy, đây là một chút áp đảo, nhưng điều này là thực sự những gì chúng ta chỉ thấy trên các slide. 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. Vì vậy, tất cả mọi thứ bạn muốn làm dự án, loại thiết bị, 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? Có iPhone, iPad hoặc phổ? Vì vậy, định hướng thiết bị, tất cả các công cụ này. Không phải là rất quan trọng, nhưng có thể được, nhưng điều này 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ự muốn triển khai đến các cửa hàng Apple. Đượ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. Hãy đi qua các hoa file. Và đây là tất cả các tập tin mà đã đi kèm với các mẫu, rất đẹp. 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. Rất giống với g chỉnh sửa. Nhưng bạn có thể thấy rằng làm nổi bật cú pháp có lẽ là một chút đẹp hơn. Và nó thực sự nhiều hơn nữa mạnh mẽ hơn chỉnh sửa g. Và bạn có thể tự động hoàn toàn rất nhiều thứ cho bạn, như chúng ta sẽ thấy rất nhanh chóng. Chúng ta hãy mở khu gỡ lỗi là tốt. Được rồi, chúng ta có thể thấy, giao diện điều khiển là phải ở đây. Đây là những gì bạn sẽ thấy nơi bạn đang ở trong printf hay nsloging một cái gì đó. 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. Một tính năng cần thiết cho s mã, là của mã đi kèm với một mô phỏng iPhone. Vì vậy, bạn không cần phải có một iPhone thử dự án của bạn, s mã có thể mô phỏng cho rằng bạn, như chúng ta có thể thấy ngay bây giờ. Nó khá đẹp. Nó lấy một ít chút thời gian để biên dịch và về cơ bản chúng ta có một ứng dụng sản phẩm nào, mà thực sự không có gì. Nhưng nó biên dịch. Nó khá awesome. Nó tốt hơn nhiều so với C, huh? Được rồi, chúng ta hãy cố gắng thêm một cái gì đó. Một tập tin đó là một chút lạ ở đây được gọi là kịch bản. Đây thực sự là một tuyệt vời, Tính năng tuyệt vời cho s mã. 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 và nó sẽ thể hiện trực tiếp lên. Hãy cố gắng đó. Chúng tôi thả một nhãn ở đây, "Hello World !!!" Chúng tôi có thể trung tâm đó. Khá mát mẻ. Bây giờ chúng ta hãy dừng chạy mô phỏng này. Ở đây chúng ta có "Hello World !!!" Chúng tôi thậm chí còn không làm bất kỳ mã nào. Cái quái gì đang xảy ra? Đây là cách mạnh mẽ Interface Builder có thể được. Ai đó thậm chí còn nói rằng có lẽ bạn có thể chỉ 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ã chỉ bằng cách sử dụng giao diện Builder. Nhưng nó có lẽ không cách tốt nhất để làm điều đó. Bây giờ chúng ta hãy thực sự nhận được xuống để mã hóa. Vì vậy, các cấu trúc cho các tập tin thực sự là thực sự thú vị bởi vì, như bạn có thể thấy, có Không có chức năng chính ở bất cứ đâu. Thấy không? Như chúng tôi đã đề cập trước, bạn có thể thấy rằng điều này là một tập tin thực thi cho một lớp học cụ thể. Nhưng không có bất cứ nơi nào chính. Vậy đâu là chính? Trên thực tế, có một chính, nhưng chính là thực sự ẩn từ bạn. Các chính là ở đây. Điều đó có vẻ quen thuộc. Vì vậy, về cơ bản những gì iOS đang làm bên chính là bất cứ khi nào chính là gọi, đó là cơ bản 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. 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ó. 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 OK, tôi sẽ tạo ra một sản phẩm gọi là appdelegate, và đó là có được ứng dụng của tôi. Vì vậy, bạn cần phải đi qua đó appdelegate và xem những gì anh chàng đó là làm. Công việc của tôi là làm cho tôi. Và trong appdelegate bạn có thể thấy rằng có một số chức năng thực sự kỳ lạ, cũng thực sự phương pháp, Apple đã đưa cho bạn. Cái này là gì? Đây là những thực chỉ giao thức mà tôi đã nói đến. Vì vậy, đây là những sự kiện mà Apple đã đưa cho bạn để bắt đầu. Không có gì là trong một số các chức năng ngay bây giờ, 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 trước khi đi vào hiển thị xem nào, chúng tôi làm điều đó ở đây. 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. Vì vậy, hiện nay chính đã tạo một đối tượng cho appdelegate. Và những gì appdelegate là sẽ làm được thực sự còn ẩn từ bạn. Các appdelegate sắp bắt đầu tải các cổ ViewController. 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ó và chỉ làm cho xem dựa trên hệ thống phân cấp. Vì vậy, trong trường hợp này, chúng ta chỉ có một điểm, đó là ở đây. Vì vậy, đó là quan điểm chỉ đó là sẽ được gọi. Logic ViewController là quyền ở đây. Đây là mã mà thực sự kiểm soát quan điểm chúng tôi chỉ thấy. Được rồi, chúng ta hãy làm một cái gì đó ở đây. 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, đây cũng là một giao thức. Vì vậy, bất cứ quan điểm được nạp, tất cả mọi thứ bên trong hàm sẽ được gọi. 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. Nó nhận được một chút chậm biên dịch các tập tin kịch bản. Vâng thực sự, chúng tôi nhìn thấy một đầu ra cho nó. Đó là khá mát mẻ. Bây giờ chúng ta hãy thực sự làm Mario. Tôi sẽ xác định hoạt động rất nhanh chóng. marioWithLevels: kết quả (int) cấp. 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. Vì vậy, khi bạn viết cho và gõ Enter, nó đã từ bỏ các mẫu cho bạn, mà là khá mát mẻ. Điều đó sẽ trông thực sự quen thuộc với các bạn. Xin lỗi, đó là lỗi của tôi. Được rồi, mát mẻ. 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. 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, 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. Chúng ta sẽ sử dụng kết quả bằng cách nào đó sau này, để hiển thị print ra kết quả cho người dùng. Vì vậy, thay vì chúng ta chỉ nslogging tất cả mọi thứ, 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, nhưng logic là chính xác như nhau. 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. Và ở đây thay vì in ra của tôi tên, chúng ta sẽ gọi một hàm. Hãy xem những gì sẽ xảy ra. Rất tiếc, rõ ràng. Chúng tôi có một tốt đẹp kim tự tháp ít ra ở đây. Đ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 và làm thế nào một chức năng như thế nào. Không có gì khác nhau cả. Nhưng điều này là thực sự không phải là rất thú vị ở đây, 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. 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 Hiện tại, bạn sẽ không để xem bất cứ điều gì 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 được ẩn từ người sử dụng. Đây là những gì bạn nhìn thấy, mà là "Hello World !!!" Không tốt. 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. Vì vậy, chúng tôi không cần phải dán nhãn nữa. Hãy thử và tìm ra một cái gì đó khác mà có thể là hữu ích. Có thực sự là một yếu tố đó được gọi là lĩnh vực văn bản, trong đó có thể rất hữu ích cho chúng ta. 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. Vì vậy, trông thực sự hữu ích. Bây giờ chúng ta hãy kéo nó và thả nó. 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. Đó là một chút quá lớn. Hãy làm cho nó nhỏ hơn. Đặt nó vào trung tâm. Làm cho nó nhỏ hơn là tốt. 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. Nhưng ngay bây giờ nó chắc chắn sẽ không làm việc bởi vì có những no-- ViewController chúng ta chỉ xác định không biết rằng có một cái nhìn văn bản ra khỏi đó. 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ỉ tạo ra với các lớp học mà đã đến với chúng tôi. Cách chúng tôi làm điều đó là thực sự rất kỳ diệu. Vì vậy, mở ra cốt truyện. Có một đặc biệt [không nghe] được gọi là [? trợ lý?] [Không nghe thấy]. Khi bạn nhấp vào đó, nó sẽ mở hai tập tin. 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ó. Nó rất, rất hữu ích. Và chúng ta hãy đi qua các tập tin h. Kiểm soát, điều này là [Không nghe thấy] logic. Kiểm soát báo chí và kéo xem văn bản vào tờ khai. Chúng tôi sẽ gọi outputView đó. Kết nối. 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. Và các tài sản mới chỉ xem văn bản chúng tôi đã tạo ra trong xây dựng giao diện. Vì vậy, trong cách mà chúng ta có thể truy cập tất cả các dữ liệu và vận dụng tất cả mọi thứ bên trong đó là quan điểm đầu ra, mà là awesome. 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ó. 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, chúng ta đang ở trong không đăng nhập được bất cứ điều gì. Tôi có nghĩa là chúng ta có thể giữ báo cáo kết quả khai thác gỗ. Bên cạnh đó, chúng tôi gửi readout chúng ta chỉ 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. Bây giờ chúng ta hãy xem những gì sẽ xảy ra. Wow. Chúng tôi có một kim tự tháp trong các ứng dụng ngay bây giờ. 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 để giao diện của chúng tôi. Nó khá tốt. Nó thực sự không phải là thú vị vì chúng tôi can-- Tất cả các ứng dụng đang làm là thấy một kim tự tháp với bạn, và không có gì bạn có thể làm gì về nó. Đó không phải là đặc biệt thú vị. 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. Có vẻ như là một nút sẽ rất hữu ích. Kéo và thả. Nút một. Nút hai. 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. Có nên không có gì trên màn hình. Và khi chúng ta nhấp vào nút bên phải, Mario, quan điểm là sẽ xuất hiện trở lại. 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 để khai báo lớp trong các trợ lý director-- trong các trợ lý người xem. Trong trường hợp này, chúng tôi được chỉ định rằng đó phải là một hành động. clearMario. Vì vậy, ở đây chúng tôi đã tạo ra một hành động gọi là clearMario, đó 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. 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 vào không có gì, và cách mà nó sẽ xuất hiện để được rõ ràng. Thêm vào đó, chúng ta hãy tạo ra một phương pháp gọi là runMario. Oh xin lỗi, đó không phải là một tài sản. Tất cả phải, mà nên là một hành động là tốt. Và khi chức năng đó là gọi là, chúng ta chỉ cần chạy Mario mười. Hy vọng rằng sẽ tốt đẹp. Liệu nó biên dịch? Vâng. Bây giờ chúng ta có một cái nhìn. Chúng tôi có một đầu ra. Và chúng ta hãy xem những gì sẽ xảy ra. Đó là đi. Nó lại một lần nữa. Vì vậy, ở đây chúng tôi đã xác định loại chức năng sẽ được gọi khi chúng ta gõ vào một cái gì đó, khi chúng ta nhấn một nút cụ thể. Điều này về cơ bản là chương trình hành động mục tiêu cho sự kiện định hướng lập trình Objective C. Bên cạnh đó, nó không phải rất thú vị bởi vì chúng ta không thể thay đổi bao cao kim tự tháp sẽ được, 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 và thay đổi chiều cao của kim tự tháp dựa trên những gì họ sản xuất. Vì vậy, chúng ta sẽ làm điều đó. 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. Tiêu đề của một này. Đại biểu. Điều này là rất thú vị. Một đại biểu là gì? Tôi sẽ tự đặt ở đây. Và chúng ta sẽ thấy điều đó có nghĩa sau này. 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 view. Một quan điểm UI cảnh báo là về cơ bản những gì bạn sẽ thấy mỗi khi một cái gì đó pops lên và yêu cầu bạn cho đầu vào, 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. 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. Đượ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. Đó là rất mát mẻ. 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. Đây là cách chúng tôi làm điều đó. Và chúng ta nên có một xem đầu vào cho các báo. Rất mát mẻ. Hãy chỉ nói 10. 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ự không thay đổi để thực hiện Mario. Vì vậy, điều này đã trở thành một chút hơi lạ vì bất cứ khi nào 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, một cái gì đó sẽ xảy ra, nhưng nó không xảy ra. Làm thế nào để chúng ta nắm bắt điều đó không? 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 và đã được nhập vào một số, vì ngay bây giờ không có gì thực sự xảy ra. Vâng, bạn có thể đoán nó đúng, phái đoàn. Vì vậy, ngoài tất cả các tờ khai, 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. Vì vậy mà mỗi đơn tương tác hoặc sự kiện rằng chúng ta sẽ có với quan điểm UI cảnh báo sẽ bị xử lý bởi lớp của chúng tôi là tốt. Vì vậy, thêm vào đó, sẽ là xem nút bấm cảnh báo tại chỉ số. Điều này đạt được. Vì vậy, trong trường hợp đó, chúng tôi có already-- vì vậy chúng tôi có phát hiện ra một giao thức sẽ xử lý các sự kiện khi chúng ta click vào nút Done trên quan điểm cảnh báo. Vì vậy, mỗi khi chúng ta bỏ qua view cảnh báo, điều này sẽ xảy ra. Hãy để tôi chỉ kiểm tra nó rất nhanh chóng. Vâng thực sự, chúng tôi đã đạt được ở đây. Vì vậy, ở đây, chúng ta sẽ không thực sự có được là thực sự 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 nhập vào xem báo. Và dựa trên văn bản, chúng tôi sẽ hiển thị Mario. Điều này rất nhanh chóng quay ra nếu nó thực sự hoạt động hay không. 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. Rất tốt, chúng tôi có một số ở đây. Nó khá tốt. 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ờ chỉ là một cuộc gọi với Mario mức độ dựa trên đầu vào mà chúng tôi đã đưa vào xem báo. Vì vậy, chúng ta cần phải chuyển đổi chuỗi này vào iOS. Tràn tĩnh là rất tuyệt vời. Và sau đó chúng ta chỉ cần gọi tự marioWithLevels giá trị. Hãy xem sẽ thấy thực sự làm việc hay không. Chúng tôi đã đưa ra một kim tự tháp. Hãy cố gắng để thay đổi chiều cao. Điều đó thực sự hoạt động. Đó là khá mát mẻ. Vì vậy, bây giờ bạn có thể chỉ đầu vào bất kỳ giá trị mà bạn muốn. Hãy chỉ nói bốn. Đó là khá tuyệt vời. Vì vậy, đây là cơ bản một ví dụ thực sự nhanh chóng 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 một số các sự kiện thực sự đơn giản và chức năng. Vì vậy, các nguồn được đi được đưa lên mạng sau đó. Vì vậy, nếu bạn đang quan tâm trong cách iOS Mario hoạt động, Tôi sẽ đặt chính xác như nhau các dự án vào các trang web CS50 sau. 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 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à có sẵn trực tuyến. Rõ ràng là tài liệu hướng dẫn của Apple sẽ là rất hữu ích. Nhưng bên cạnh đó, tôi đặc biệt đề nghị bốn nguồn, học code, ngôi nhà trên cây, WWDC AppCoda và video. Mã trường và ngôi nhà trên cây là hai trang web chỗ học trực tuyến, trong đó đặc biệt chú trọng về công nghệ phần mềm. Đặc biệt đối với trường mã, họ có hướng dẫn thực sự tốt trên iOS. Đó là một ví dụ thực sự nhanh chóng cho nó. Họ thực sự tạo ra một sự cute-- nhìn vào đó chút iPhone dễ thương anh chàng ở đây, nó là khá tuyệt vời. Và cách họ giải thích Mục tiêu Cú pháp C là hoàn toàn rõ ràng. Ngôi nhà trên cây là như nhau. Và AppCoda là một diễn đàn. Nó thực sự là một blog đã chạy bởi một thực sự kinh nghiệm Objective C lập trình viên. Và tất cả những hướng dẫn trong AppCoda là khá ngắn và dễ dàng để thực hiện, rất khuyến khích. Và nếu bạn là một nhà phát triển, chắc chắn đi kiểm tra 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 kỹ thuật, các API và các thư viện. Vì vậy, đó là khá nhiều nó cho các buổi hội thảo. Cảm ơn bạn rất nhiều. Và tôi hy vọng bạn có vui vẻ tạo ứng dụng iOS của riêng bạn.