>> RHED SHI: Chào mừng bạn đến thấy hội thảo CS50 -
Giới thiệu về iOS.
Cảm ơn tất cả các bạn đã đến.
Tôi hy vọng bạn chỉ là vui mừng như tôi về iOS.
Năm ngoái, tôi đã CS50 là một sinh viên năm hai, và tôi về cơ bản đã học iOS cho tôi
dự án cuối cùng.
Và nó đã được khá -
tốt, thật không dễ dàng, nhưng có rất nhiều hướng dẫn hỗ trợ trực tuyến.
Và tôi thực sự hy vọng rằng với điều này hội thảo, tôi sẽ cho các bạn một cái đầu
bắt đầu phát triển iOS
>> Vì vậy, về phát triển iOS, có hai điều chính chúng tôi
muốn nói đến hôm nay.
Đầu tiên, ngôn ngữ -
ngôn ngữ là có được trong Objective-C. Chúng tôi sẽ thực sự nghe
một cái gì đó thực sự thú vị.
Vì vậy, bạn có thể tham gia toàn bộ của Apple cộng đồng các nhà phát triển và xây dựng một số
ứng dụng thực sự tuyệt vời.
>> Ngoài ra, iOS 7 là đẹp, hy vọng, để một số bạn.
Nhưng nó gây tranh cãi, tôi biết.
Và chủ yếu, những gì tôi muốn làm là hướng dẫn bạn qua Objective-C, và cũng
Xcode, đó là tích hợp môi trường phát triển mà bạn sẽ có
làm việc trong cho iOS.
>> Và như vậy, chỉ là một từ trên Objective-C. Về cơ bản, đó là chính xác giống như C,
nhưng với rất nhiều những thứ khác.
Và như vậy, đúng hơn, nó thực sự là một siêu thiết lập của C. Vì vậy, bất cứ điều gì mà bạn
có thể làm trong C ngay bây giờ, đó là về cơ bản thích pset 0 đến 6, bạn
có thể làm trong Objective-C.
>> Vì vậy, không cảm thấy sợ hãi về mới này ngôn ngữ mà bạn đang đi học.
Bạn đã được rất nhiều của nó, bởi vì bạn đã thực hiện tất cả C vừa qua
học kỳ, ngoại trừ bây giờ bạn đang đi có nhiều hơn để làm việc với.
Và tôi chỉ cần đi để dẫn bạn thông qua một vài ví dụ để làm nổi bật một số
trong những khác biệt quan trọng mà tôi tìm thấy là khi thực sự quan trọng mà tôi học được
Objective-C năm ngoái.
>> Vâng thực sự, vì vậy, điểm khác là, Objective-C là, rõ ràng,
hướng đối tượng.
Và chúng tôi sẽ thảo luận về một chút về những gì có nghĩa là sau đó.
Về cơ bản, nó giống như cách bạn làm việc với cấu trúc trong pset vừa qua, với
các nút và tương tự khác những điều như thế.
Ngoại trừ, trong Objective-C, tất cả mọi thứ là một đối tượng, và bạn sẽ được
đi ngang qua con trỏ đến đối tượng chứ không phải là giá trị bản thân.
Vì vậy, nó chỉ là một cái gì đó quan trọng để ghi nhớ.
>> Vì vậy, tại sao chúng ta không bắt đầu với một vài sự khác biệt về cú pháp giữa C và
Objective-C?
Tôi muốn làm nổi bật bao gồm #, bạn biết, io.h chuẩn trong C và C + +, với
phiên bản C-Mục tiêu đó, mà # là nhập khẩu, và sau đó một số loại
tập tin tiêu đề.
Trong trường hợp này, nó sẽ là UIKit, bạn biết, dấu gạch chéo UIKit.h.
Nó cũng có thể, bạn đã biết, MKMapview để bạn cắt giảm MKMapview.h nếu bạn muốn
để làm, như, một bản đồ bên trong ứng dụng của bạn.
Những điều tương tự như thế.
>> Vì vậy, điều quan trọng là bao gồm bây giờ đã thay đổi để nhập khẩu.
Nhưng ý tưởng vẫn còn.
Bạn sẽ phải nhập khẩu một số loại của phần đầu tập tin vào chương trình của bạn.
>> Tôi cũng muốn làm nổi bật sự khác biệt giữa printf và NSLog.
Tuy nhiên, như chúng tôi đã nói trước đó, Objective-C là một siêu nghiêm ngặt bộ
C, có nghĩa là printf tồn tại Objective-C, quá.
Nhưng, hầu hết mọi người không sử dụng.
Hầu hết mọi người sử dụng NSLog này bởi vì nó cung cấp cho bạn một tem thời gian, và chúng ta sẽ thấy
nó trong hành động sau đó.
Tuy nhiên, nó thường là một hữu ích hơn cách nào để in ra các biến.
>> Và tôi cũng muốn nhấn mạnh rằng NSLog mất chỉ trong cùng một
giá trị giữ chỗ như printf không -
vì vậy% d là một int, % F là cho một phao.
Tuy nhiên, tôi muốn nhấn mạnh một cuối cùng này -
NSLog% lúc đăng nhập -
đó là một giữ chỗ cho một đối tượng.
Và như tôi đã nói trước đó, giao dịch Objective-C khá nhiều chủ yếu ở các đối tượng,
và vì vậy điều này sẽ được sử dụng khi bạn muốn in ra, có lẽ, có thể là một
NSArray, hoặc NSDictionary, hoặc một NSString.
>> Vì vậy, cũng nhận thấy rằng, trong NSLog của chúng tôi tuyên bố, chúng ta có một dấu hiệu ở phía trước
của báo giá -
đó là để biểu thị chuỗi, bây giờ, Objective-C là các đối tượng.
Họ không còn chỉ đơn giản là sao char.
Họ đối tượng và đối xử như vậy.
>> Vì vậy, nó thực sự quan trọng là khi bạn sử dụng NSLog phải mất trong một NS
chuỗi, có nghĩa là bạn sẽ phải bao gồm một ở phía trước của bạn
dấu ngoặc kép.
Và đó là lý do tại sao bạn thấy, ở đây, trong tất cả các chức năng của tôi để gọi NSLog này, tôi
có một lúc ở phía trước của báo giá, thậm chí mặc dù% d và% f là
tất cả như nhau từ C.
>> Bất kỳ câu hỏi cho đến nay?
Tôi sẽ cố gắng đi qua này một cách nhanh chóng như vậy chúng tôi có thể có thêm thời gian để làm việc
với Xcode và Objective-C, do đó, mà các bạn có thể nhận được nhiều hơn
quen thuộc với nó.
>> Tiếp theo, tôi muốn nhấn mạnh một cái gì đó khái niệm quan trọng.
Vì vậy, trong C, hầu hết mọi thứ là chức năng.
Chúng tôi thực hiện cuộc gọi chức năng.
Chúng ta khai báo các chức năng theo cách này, với sự trở lại gõ đầu tiên, sau đó các
tên hàm, dấu ngoặc đơn, và sau đó bất kỳ đối số và các loại
những lập luận này, chúng tôi muốn vượt qua in
Và Objective-C, bởi vì tất cả mọi thứ là một đối tượng hoặc lớp -
vì vậy lớp và đối tượng là hai thuật ngữ chủ yếu là đồng nghĩa với nhau,
vì vậy tôi có thể sử dụng chúng thay thế cho nhau trong suốt buổi hội thảo.
>> Tuy nhiên, bạn sẽ thấy rằng chúng tôi có phương pháp trong Objective-C chứ không phải là chức năng.
Và phương pháp thuộc về các đối tượng.
Vì vậy, cũng giống như, có thể mất ví dụ, nút -
loại của chúng tôi [không nghe được]
nút từ pset 6 hoặc 5 -
chúng tôi có các văn bản, tài sản, hoặc nút con trỏ tới.
Phương pháp chỉ đơn giản là chức năng bên trong của một số loại cấu trúc.
>> Vì vậy, trong trường hợp này, cấu trúc sẽ là các đối tượng, và sau đó phương pháp này là
một cái gì đó thuộc về một đối tượng.
Và đây là cách bạn sẽ tuyên bố, loại, một phương pháp.
Bạn sẽ bắt đầu với, một lần nữa, sự trở lại loại - như vậy, tôi đã cố gắng để màu
mã các từ khóa ở đây để các bạn có thể nhìn thấy, ít nhất, định dạng
tương đồng giữa chức năng tờ khai và khai báo phương thức.
Vì vậy, bạn bắt đầu, bạn đã biết, trở lại loại - trong trường hợp này, nó là một mảng, hoặc
một con trỏ NSArray -
và sau đó bạn có phương pháp này.
Và sau đó, những gì thú vị ở đây là là thay vì có dấu ngoặc đơn, chúng tôi
có những dấu hai chấm.
Và sau đó, ở phía trước của các đối số của chúng tôi, chúng tôi đặt, một lần nữa, trong dấu ngoặc đơn các loại
lập luận của chúng tôi.
>> Vì vậy, ngay bây giờ tôi đang cố gắng để làm cho so sánh giữa, bạn biết đấy, n và
số lượng, bởi vì chúng cả hai ints như thế nào.
Và sau đó, một trong những khác là một loại NSUInteger.
Và sau đó, với Objective-C, khi bạn muốn có nhiều tranh luận trong
khoản của bạn phương pháp, bạn, loại, tách chúng ra loại như thế này -
Tôi không hoàn toàn chắc chắn làm thế nào để mô tả nó, nhưng đây là một ví dụ tốt về bạn
có thể có nhiều tranh luận trong đó.
>> Bạn có thể, tất nhiên, chỉ hoàn toàn bỏ qua đại tràng andArray NSArray
mảng nếu bạn muốn chỉ là một phương pháp mà mất trong một cuộc tranh luận.
Vâng, câu hỏi.
>> ĐỐI TƯỢNG: Có cả NSUInteger và NSArray đối số có thể được thực hiện trong
trong NSArray?
>> RHED SHI: Có.
Vì vậy, hãy để tôi giải thích.
Vì vậy, có.
Vì vậy, câu hỏi là là NSUInteger và NSArray * loại các đối số,
và đó là chính xác.
Vì vậy, bạn luôn luôn muốn xác định những gì các loại lập luận của bạn.
Và ở đây, tôi đang cố gắng để giới thiệu cho bạn để một số cú pháp và vocab của
Objective-C, do đó, những các loại thực tế rằng bạn sẽ được xử lý.
>> Và như bạn sẽ nhận thấy, mảng không còn, loại,
điều khung đơn giản.
Họ đối tượng.
Mặc dù, nếu chúng ta tiếp tục tiếp theo slide, chúng ta có thể thấy rằng chúng tôi có thể
cứng mã một NSArray trong Objective-C với chỉ đơn giản là một biểu tượng ở phía trước
các dấu ngoặc đơn.
Tôi không, trên thực tế, khá chắc chắn liệu Tôi cú pháp mã hóa cứng một mảng
một cách chính xác cho các phiên bản C, nhưng đó là nghĩa vụ phải được trong một mảng C.
>> Vì vậy, đây là cách bạn sẽ, bạn đã biết, có lẽ sử dụng những chức năng hay
phương pháp mà chúng tôi tạo ra trước đó.
Phải không?
Vì vậy, đây là nơi mà chúng ta khai báo của chúng tôi chức năng và phương pháp của chúng tôi.
Và bây giờ chúng tôi muốn sử dụng chúng trong chương trình của chúng tôi, và đây là
cách chúng tôi sẽ làm điều đó.
Vì vậy, trong C, bạn sẽ có, bạn đã biết, có lẽ, một bool b, và bạn đặt nó vào
bằng chức năng, và sau đó bạn vượt qua trong các đối số.
>> Objective-C, nó đẹp nhiều điều tương tự.
Bạn có NSArray * my_array, và nó sẽ bằng - bây giờ, chỉ
khác biệt ở đây là điều đối tượng này, mà tôi đã đánh dấu màu vàng, và
như bạn có thể thấy, trong C, có không có chữ màu vàng khác.
Và đó là bởi vì phương pháp thuộc với một đối tượng nhất định.
Vì vậy, đó là lý do tại sao tôi cần phải có một đối tượng rằng, loại, gọi phương pháp này trên
số không, và sau đó các NSArray a, b, c, d.
Bất kỳ câu hỏi về điều đó?
>> Chúng ta sẽ thấy những khái niệm trong hành động khá sớm khi chúng tôi đi vào một bản demo.
OK.
Bây giờ, tôi muốn nói một chút thời gian ngắn về Xcode 5, đó là
môi trường phát triển tích hợp mà bạn sẽ làm việc với.
Tôi biết rất nhiều bạn, hoặc một số bạn, không có máy Mac, mà là một vấn đề
vì Xcode là không có sẵn cho Windows và PC.
Đừng hỏi tôi tại sao, nhưng có lẽ -
yeah, công ty.
Bất cứ điều gì.
Nhưng dù sao, vì vậy, tôi xin lỗi nếu một số bạn phải tải về một số loại
máy ảo cho Mac trong Để chạy Xcode 5.
Nhưng nó là một tiện lợi khá phần mềm để sử dụng.
>> Và vì vậy, trước khi chúng ta đi sâu vào bất kỳ loại của bản demo, tôi chỉ muốn cho bạn thấy một
hình ảnh của những gì trông giống như trong Xcode của bạn cửa sổ, và sau đó cũng nói về
những gì toàn bộ không gian này là.
Vì vậy, nó là loại giống như học cách sử dụng Microsoft Word, ngoại trừ bạn muốn
làm quen với tất cả các điều khác nhau mà
đang xảy ra ở đây.
>> Vì vậy, đầu tiên, tôi muốn chỉ cho bạn vào thanh công cụ ở đầu trang.
Bạn sẽ thấy rằng, ở đầu trang, bạn sẽ có tên tập tin -
hay, trên thực tế, tên dự án của bạn và sau đó tên tập tin của bạn.
Lưu ý các điểm vui chơi và các nút dừng.
Đó là những người mà bạn sẽ có sử dụng để chạy ứng dụng của bạn trên
mô phỏng -
giả lập iOS.
Điều này tự động đi kèm với Xcode 5, vì vậy bạn không phải lo lắng về
tải về một số loại mô phỏng.
Bạn chỉ cần bấm chơi và sau đó nó chạy ứng dụng của bạn.
Và bạn có thể chơi xung quanh với bạn, và bạn sẽ thấy cách nó hoạt động sau đó.
>> Và sau đó, ở trung tâm, tất nhiên, là nơi tất cả các mã đẹp của bạn là
sẽ đi.
Và sau đó, ở phía bên tay trái, bạn sẽ có điều này, loại, thư mục -
chuyển hướng -
và sau đó, bạn cũng sẽ thấy rằng, cùng với các biểu tượng thư mục, có một
loạt các biểu tượng khác đó mà sẽ hữu ích sau.
>> Và sau đó, ở phía bên phải là một tiện ích khu vực nơi bạn có thể làm việc với
một số đối tượng và chỉ định, bạn biết, những gì màu sắc nên được, những gì
font nên, vân vân.
Mặc dù, tất cả mọi thứ mà bạn làm trong khu vực tiện ích, bạn có thể
làm trong mã là tốt.
Và vì vậy, tôi sẽ được đi qua hai ví dụ của việc sử dụng, đơn giản, không có mã tại
tất cả - hoặc mã rất tối thiểu -
câu tất cả các mã, chỉ để các bạn biết những gì bạn có thể và không thể làm trong
Xcode và Objective-C.
>> Và sau đó, cuối cùng, giảm ở phía dưới, bạn có diện tích gỡ lỗi.
Vì vậy, bạn không còn phải chạy GDB, vân vân, trên chương trình của bạn.
Nó tự động làm điều đó cho bạn.
Và bạn cũng có thể in thứ đến khu vực này.
Vì vậy, trên thực tế, sau đó, chúng ta sẽ đi qua mario.c, nếu các bạn vẫn còn nhớ
rằng, trong Xcode.
Vì vậy, nên được vui vẻ.
>> Và sau đó, chỉ để đưa nó trở lại Objective-C, tôi muốn nhấn mạnh những gì
bạn có thể làm với nếu phát biểu.
Vì vậy, bạn biết, bởi vì Objective-C là một cha của C, tất cả mọi thứ bạn làm là,
nghĩa đen, giống như C. Bạn chỉ có sự khác biệt nhỏ.
Vì vậy, bạn sẽ nhận thấy các hình thức cho một nếu tuyên bố là vẫn như nhau - bạn có
nếu, và sau đó bạn có các dấu ngoặc đơn với một điều kiện bên trong, và sau đó
dấu ngoặc nhọn cho bất cứ điều gì bạn muốn làm bên trong đó.
>> Tuy nhiên, tôi muốn đặt slide này lên ở đây, chỉ đơn giản là để minh họa rằng,
bởi vì chúng tôi đang làm việc với các đối tượng bây giờ, chúng tôi sẽ phải sử dụng những điều này
gọi là như thế, bằng chuỗi, là, tình cờ, một phương pháp của một
chuỗi hoặc một đối tượng NSString.
Vì vậy, từ, trong trường hợp này, là một NSString đối tượng, và nó có một phương pháp gọi là là
bằng chuỗi, và sau đó chúng tôi đang đi qua trong một chuỗi mã hóa cứng để xem
có phải đó là bằng với nhau.
>> Bất kỳ câu hỏi cho đến nay?
OK.
Và, tôi muốn đi qua câu lệnh for cũng có.
>> Vì vậy, ví dụ, nếu chúng ta muốn để lặp hơn chiều dài của một chuỗi trong C, điều này
nên quen thuộc với bạn.
Và, trong Objective-C, tôi muốn để làm nổi bật này, loại,
phương pháp gọi là đếm.
Vâng, thực sự, hãy để tôi chỉ lấy lại đó.
Số là một phương pháp của mảng.
Tuy nhiên, nó đặc biệt hơn một tài sản của mảng, đó là lý do tại sao bạn
có thể sử dụng các ký hiệu dấu chấm.
Nhưng tôi không muốn nhận được vào quá nhiều thứ khái niệm này, tôi chỉ muốn
để chỉ cho bạn cách điều sẽ xem xét như trong Objective-C so với C.
>> Và cũng có thể, tôi muốn chỉ ra rằng mặc dù tôi đã sử dụng NSUInteger
ở phía trước của tất cả của tôi của tôi trong Objective-C, bạn cũng có thể sử dụng int, vì int là
hoàn toàn hợp lệ trong Objective-C, cũng có.
Có?
>> ĐỐI TƯỢNG: Là nó chỉ phong cách, hoặc là -
>> RHED SHI: Vâng.
Vì vậy, như bạn sẽ thấy -
như vậy, câu hỏi là là chỉ là một vấn đề phong cách.
Như bạn sẽ thấy, tôi có một, loại, ngôi sao dấu điều xuống ở phía dưới, và
liên kết mà sẽ đưa bạn đến một tràn ngăn xếp hình thành, nơi ai đó giải thích
sự khác biệt giữa một int trong NSInteger và NSUInteger.
Và như vậy, bạn có thể đọc về điều này sau.
Các slide sẽ được, tất nhiên, sẵn cho bạn.
>> Chúng ta hãy xem.
OK, tuyệt vời.
Vì vậy, điều này cũng được bao gồm trong slide bởi vì tôi nghĩ đây là một tuyệt vời
trang web giới thiệu cho bạn cú pháp Objective-C.
Vì vậy, trên thực tế, lý do tại sao chúng ta không chuyển đến Chrome và kiểm tra trang web này?
>> Đúng.
Vì vậy, những gì tôi muốn chỉ cho bạn kẻ ở đây là hình ảnh này.
Vì vậy, đây là, loại, sẽ là những gì bạn sẽ nhìn thấy bên trong của bất kỳ
Tập tin Xcode.
Trên thực tế, lý do tại sao chúng ta không chỉ mất một thời gian để, loại, thực hiện việc này in
>> Vì vậy, cuốn sách này -
đó là đối tượng chúng tôi đang xử lý.
Và sau đó, nó rõ ràng là sẽ có thừa hưởng từ một số đối tượng khác, nhưng
bạn không phải lo lắng về điều đó.
Và sau đó, nó, có lẽ, có một số biến thành viên.
>> Điều quan trọng tôi muốn cho bạn thấy là phương pháp dụ, ở đây.
Vì vậy, phương pháp dụ được biểu bởi dấu trừ này.
Và sau đó, như bạn sẽ thấy, chúng tôi đã bắt đầu nhìn thấy các mô hình
kê khai phương pháp, phải không?
Kiểu trả về, tên phương pháp, và sau đó các loại của các đối số, và
sau đó tên của các đối số.
Và dấu trừ này có nghĩa là nó là một phương pháp dụ, có nghĩa là
những phương pháp này chỉ có sẵn cho đối tượng đã được khởi tạo.
>> Tương phản đó, các phương pháp với một cộng đăng nhập trước mặt họ là lớp học
phương pháp, có nghĩa là bạn có thể gọi các phương pháp này, ngay cả khi bạn không có
một đối tượng nào được tạo.
Vì vậy, cho một ví dụ rõ ràng, NSString là một lớp.
Và bạn có thể gọi, ví dụ, phương thức lớp trên NSString -
thực tế, giống như, từ NSString.
>> Tuy nhiên, để sử dụng các phương pháp, bạn thực sự
cần phải tạo ra một chuỗi.
Ví dụ, chuỗi NSString sao bằng tại dấu ngoặc kép, xin chào thế giới.
Và sau đó, bạn có thể sử dụng những phương pháp này -
phương pháp dụ -
trên thế giới rằng chuỗi hello.
Vì vậy, đó là sự khác biệt giữa phương pháp dụ và phương thức lớp.
>> Và, chúng tôi chỉ được phần này.
Bất động sản là một điều mà bên trong của các đối tượng, về cơ bản.
Và bạn khai báo với tại từ khóa bất động sản.
Bạn có các tùy chọn này, ở đây, mà tôi sẽ giải thích sau khi
chúng tôi đi vào một bản demo.
Có?
Hi.
>> ĐỐI TƯỢNG: bạn có thể phóng to, xin vui lòng?
>> RHED SHI: Đúng thế.
Xin lôi.
>> ĐỐI TƯỢNG: Cảm ơn bạn.
>> RHED SHI: Điều đó sẽ tốt hơn rất nhiều.
>> ĐỐI TƯỢNG: Vâng.
Cảm ơn bạn.
>> RHED SHI: Vâng, xin vui lòng nhắc nhở tôi nếu Tôi quên để phóng to hoặc thu nhỏ.
Vì vậy, đây là tất cả tôi muốn cho bạn cho -
whoa, đó là rất nhiều -
cho trang web này.
Vì vậy, chúng ta hãy quay trở lại slide của chúng tôi.
>> Trên thực tế, bây giờ chúng ta hãy dành một chút thời để nhảy vào một bản demo.
Vì vậy, chúng tôi sẽ bắt đầu với một dự án Xcode mới.
Vì vậy, nếu bạn sẽ mở ra Xcode trên tất cả các máy của bạn, nó sẽ đưa bạn một số
trang mà nó nói, như, hoặc mở lập một dự án hiện có hoặc mới
dự án, và bạn nên nhấp vào một dự án mới.
Và sau đó, nó phải mất bạn màn hình này.
Có?
>> ĐỐI TƯỢNG: Nếu chúng ta không có một máy Mac, Chúng ta chỉ cần loại thư giãn?
>> RHED SHI: Hoặc nhìn với một ai đó, yeah.
Yeah.
Bạn có thể thư giãn, quá.
OK.
>> Vì vậy, những gì chúng ta sẽ làm đầu tiên, bây giờ, là, trên thực tế, chúng ta sẽ làm một
ứng dụng xem duy nhất.
Vì vậy, nếu bạn sẽ nhận thấy, những gì tuyệt vời về Xcode và hỗ trợ của Apple cho
phát triển là bạn có rất nhiều các mẫu để làm việc với đã.
Bạn có thể, ví dụ, làm cho một ứng dụng master-chi tiết.
Bạn có thể làm cho một trò chơi -
và thực sự, tôi sẽ không đi vào trò chơi, bởi vì trò chơi là một câu chuyện khác nhau
phát triển iOS.
Và họ đang loại riêng biệt, vì vậy tôi sẽ không đi vào đó.
>> Sau đó, bạn đã trang dựa trên các ứng dụng.
Bạn có một ứng dụng tab -
rất thích, ví dụ, Bank of America có thể có, như là một ứng dụng web theo thẻ.
Đó là những nơi mà bạn có các nút ở phía dưới.
Và sau đó, bạn có một trò chơi Kit Sprite.
>> Hoặc bạn có thể làm việc từ đầu, mà là những gì chúng tôi sẽ làm sau.
Nhưng chúng ta hãy, đầu tiên, bắt đầu với một ứng dụng xem duy nhất.
Sau đó, nó sẽ yêu cầu một tên sản phẩm, và chúng tôi chỉ có thể làm bài kiểm tra.
Tên tổ chức -
như vậy, tên tổ chức, định danh công ty -
đó là quan trọng nếu bạn đang đi đưa ứng dụng của bạn trên cửa hàng ứng dụng.
Ngoài ra, mã của bạn sẽ chạy hoàn toàn tốt mà không có điều này.
>> Điều này sẽ rất quan trọng nếu bạn muốn - vì vậy, mỗi gia nhập, như, đưa ứng dụng của bạn
vào điện thoại hoặc một cái gì đó của bạn, và thử nghiệm nó ra, bạn biết đấy, trong cuộc sống thực -
điều này sẽ rất quan trọng.
Điều này có xu hướng thường được liên kết với một số loại tài khoản nhà phát triển
với Apple.
>> Và như vậy, tôi biết, có lẽ, rất nhiều bạn sẽ không có bất kỳ tài khoản nhà phát triển.
Tôi biết các trường đại học có một.
Tôi nghĩ rằng CS có một.
Tuy nhiên, bạn có thể gửi email cho tôi và tôi sẽ cố gắng để con số đó ra cho bạn.
Nhưng ngay bây giờ, tôi đã chỉ cần đặt trong một số điều giữ chỗ ở đây.
>> Và bạn có thể, tất nhiên, ở đây, chọn cho dù bạn muốn nó được chỉ trong
iPhone, iPad trong, hoặc cả hai -
ứng dụng phổ quát.
Vì vậy, bây giờ, chúng ta hãy làm phổ quát, chỉ để xem cả hai mặt của nền tảng này.
>> Chúng ta hãy xem.
Vì vậy, ngay bây giờ, tôi sẽ tiết kiệm nó trong một số loại thư mục.
Không quan trọng nơi - bạn luôn luôn có thể di chuyển nó sau này.
Và, bây giờ, chúng tôi được đưa dự án Xcode của chúng tôi.
Tôi sẽ không lo lắng về điều này.
Tôi sẽ đề nghị không chạm vào bất kỳ của này, trừ khi bạn biết chính xác những gì
bạn đang làm.
Vì vậy, tất cả điều này, chỉ cần bỏ qua cho hầu hết các phần.
Bạn sẽ không cần phải chạm vào nó, và nếu bạn làm bạn rối lên một số điều ở đây, nó
được một chút khéo léo.
>> Vì vậy, tại sao chúng ta không nhìn vào các tập tin trên
bên trái tay trong hoa tiêu của chúng tôi.
Ở đây, chúng tôi có AppDelegate.h.
Chúng tôi có AppDelegate.m Vì vậy, như bạn sẽ thông báo, chúng tôi đã tập tin tiêu đề, mà
kết thúc trong dot h, và chúng tôi có thực hiện -
thực sự, hãy để tôi zoom in
OK.
Hãy để tôi zoom in
>> Đúng, vì vậy bạn có tập tin tiêu đề và bạn có tập tin thực hiện.
Trên thực tế -
OK.
Đây là một chút lạ, nhưng chịu với tôi.
Sau đó, bởi vì chúng tôi đã chọn một cái nhìn duy nhất ứng dụng, chúng ta sẽ được
làm việc với kịch bản này.
>> Vì vậy, kịch bản là một cái gì đó mà Apple đã đưa ra để thực sự giúp đỡ
phát triển mẫu thử nghiệm nhanh chóng ứng dụng của họ.
Vì vậy, đây là nơi mà bạn có thể tạo một ứng dụng mà không cần viết một
dòng mã.
Tuy nhiên, trong ứng dụng xem duy nhất của chúng tôi, chúng tôi, tất nhiên, có một
nộp cho chúng tôi, mà là một bộ điều khiển xem.
Vì vậy, chúng tôi có tiêu đề và tập tin thực hiện, ở đây.
>> Và, tôi sẽ thu nhỏ bây giờ bởi vì chúng tôi sẽ cần phải làm việc trong kịch bản này.
Vì vậy, đây là quan điểm của chúng tôi.
Nếu chúng ta, đơn giản, chạy các ứng dụng ngay bây giờ, không có nhiều thú vị xảy ra.
Vì vậy, bạn sẽ thấy màn hình trắng này.
OK?
>> Và, trong khu vực tiện ích của chúng tôi, chúng tôi có thể thêm một loạt các thứ khác nhau với nó.
Vì vậy, khi bạn đang làm việc với màn hình trong iOS, điều khiển xem là
các đối tượng đóng gói, loại, quan điểm của bạn.
Vì vậy, một bộ điều khiển xem luôn có một tài sản được gọi là điểm.
Và xem rằng, thông thường, chứa, Bạn có biết, những gì bạn
muốn nhìn thấy trên màn hình.
>> Vì vậy, tốt, chúng ta hãy bắt đầu bằng cách đặt, có lẽ, có thể là một nhãn.
Vì vậy, chúng ta hãy đặt một nhãn trên đó -
dính nó ở giữa.
Vì vậy, bây giờ mà tôi đã nhấp vào nhãn, tôi có thể đi vào các tính chất thanh tra
và bắt đầu thay đổi giá trị của nó.
Chúng ta hãy gọi nó CS50 màu sắc.
>> Và, tôi cũng có thể thay đổi font chữ.
Vì vậy, thay vì hệ thống, đó là làm mặc định, chúng ta có thể làm một tùy chỉnh.
Chúng ta có thể thay đổi -
bạn đã biết, siêu nhẹ, làm cho nó 32.
Và sau đó, chúng ta có thể làm cho hộp của chúng tôi lớn hơn.
>> ĐỐI TƯỢNG: Bạn có nghĩ rằng bạn có thể phóng to trong hơn một chút, có lẽ?
>> RHED SHI: Vâng?
OK.
>> ĐỐI TƯỢNG: Chỉ cần gõ nó?
>> RHED SHI: Hãy xem.
Không làm việc này?
>> ĐỐI TƯỢNG: Chỉ cần vượt qua Xcode?
>> RHED SHI: Chắc chắn.
OK.
Tuyệt vời.
>> ĐỐI TƯỢNG: Nhãn dưới?
Nhãn?
>> RHED SHI: đó là gì?
>> ĐỐI TƯỢNG: Điều gì thả xuống là nhãn theo?
>> RHED SHI: Vì vậy, câu hỏi là, những gì thả xuống là nhãn theo?
Cần, đơn giản, dưới đây.
Tôi đoán đó là một điều khối lập phương.
Nhưng thông thường, đây là mặc định -
Tôi chỉ đi xuống đây cho đến khi tôi tìm thấy một nhãn.
Yeah.
>> Vì vậy, bây giờ, chúng tôi có nhãn của chúng tôi.
Hãy trung tâm này.
Và Xcode cho chúng ta hướng dẫn giữa đối tượng.
Vì vậy, bây giờ chúng ta hãy chạy mã của chúng tôi một lần nữa.
>> Có chúng tôi đi.
Vì vậy, chúng tôi có CS50 màu sắc.
Và bây giờ, chúng ta hãy đặt một nút trên đó, phải không?
Bởi vì chúng tôi muốn thực hiện này tương tác.
Vì vậy, hãy đặt một nút ở đây.
Và chúng tôi sẽ gọi cho nút "vòi này đây để tiếp tục. "Chúng tôi sẽ tập trung nó, cũng
Trên thực tế, nó đã được làm trung tâm.
Yeah.
>> Vì vậy, bây giờ chúng tôi có một nút.
Và nếu chúng ta chạy này một lần nữa, chúng ta sẽ có một nút nhỏ tốt đẹp ở đây.
Và tôi có thể nhấp vào nó, nhưng nó không làm bất cứ điều gì, bởi vì chúng tôi đã không được thực hiện
bất cứ điều gì với các nút được nêu ra.
>> Vì vậy, chúng ta hãy tạo ra một góc nhìn khác, phải không?
Vì vậy, hãy nói rằng tôi muốn khai thác nút đó và tôi muốn
đi đến một trang khác -
khác xem.
Những gì tôi sẽ làm là, tôi có thể tạo ra một bộ điều khiển xem, phải không?
Bây giờ tôi sẽ bấm vào nút của tôi, và sau đó, điều quan trọng là, tôi sẽ
nhấp vào - hoặc -
có, kiểm soát trên bàn phím của tôi.
Kiểm soát.
Nhấn vào nút, và sau đó kéo.
>> Vì vậy, hãy nhớ giữ phím điều khiển.
Chúng ta hãy làm điều đó một lần nữa.
Vì vậy, tổ chức kiểm soát, nhấp chuột và kéo với những gì bạn muốn làm.
OK.
>> Và bây giờ, tôi có nhiều lựa chọn ở đây.
Tôi có thể đẩy, hoặc tôi có thể làm một modal, hoặc tôi có thể làm một tùy chỉnh.
Đẩy chỉ là nếu bạn có một điều khiển chuyển hướng.
Ngay bây giờ, xem đầu tiên của chúng tôi điều khiển không phải là bên trong của bất kỳ
điều khiển chuyển hướng.
Vì vậy, điều khiển chuyển hướng là một trong những cung cấp cho bạn các nút quay lại trên
các ứng dụng iOS, nơi bạn có, bạn đã biết, hàng đầu mà, loại, thanh dày -
nơi bạn có thể quay trở lại, hoặc về phía trước, vân vân.
Ngay bây giờ, tôi không có điều đó.
Và như vậy, đó là lý do tại sao tôi không thể làm một sự thúc đẩy.
>> Vì vậy, tôi nhấp vào đẩy vô tình, đây.
Và trên thực tế, chúng ta hãy chạy mã, và nó sẽ sụp đổ vào tôi.
Chỉ khi tôi nhấn nút mặc dù, vì vậy -
đúng.
Vì vậy, đây là xấu.
>> Và, như bạn có thể thấy, ở đây, chúng tôi có thông báo lỗi.
Vì vậy, "segues Đẩy chỉ có thể được sử dụng khi điều khiển nguồn được quản lý bởi một
thể hiện của điều khiển chuyển hướng giao diện người dùng. " Vì vậy, bởi vì đây không phải là bên trong một
điều khiển chuyển hướng, Tôi không thể làm điều đó.
>> Vì vậy, ngay bây giờ, tôi sẽ trở lại thư mục, trở lại với kịch bản này.
>> ĐỐI TƯỢNG: chuyển hướng là gì điều khiển, một lần nữa?
>> RHED SHI: Vì vậy, ngay bây giờ tôi sẽ cho bạn thấy.
Chúng ta hãy xem.
Vì vậy, tôi sẽ click vào xem này điều khiển, và sau đó tôi sẽ đi
lên đến sản phẩm -
trên thực tế, không, xin lỗi - biên tập viên.
Và tôi sẽ đi vào -
thực sự, tôi đã click vào nó?
Không.
Có chúng tôi đi.
Tôi sẽ đi lên vào trình soạn thảo, đi xuống để nhúng vào, và sau đó chuyển hướng
điều khiển.
>> OK.
Và, không gian làm việc của tôi trông thực sự lộn xộn, vì vậy hãy làm sạch này lên.
Vì vậy, tất cả điều này là kịch bản.
Và theo cách này -
OK, dừng lại -
Tôi có thể nhanh chóng xây dựng một cái gì đó như thế này.
Và sau đó, bây giờ tôi có thể quay trở lại, bạn biết không?
>> Nhưng đây là loại nhàm chán, phải không?
Vì vậy, những gì tôi muốn làm là, tôi không muốn để thực hiện, chỉ đơn giản là, một cái nhìn
điều khiển.
Hãy nói rằng tôi muốn thực sự thực hiện xem bảng điều khiển, vì vậy tôi có thể đặt trong
một số màu sắc đẹp, vào bảng.
>> Vì vậy, bây giờ mà tôi đã đưa vào xem bàn của tôi điều khiển, tôi cần phải kết nối nó trở lại
từ nút này đến điều khiển xem.
Vì vậy, tôi cần phải làm kiểm soát của tôi, nhấp chuột, kéo điều một lần nữa.
Và bây giờ tôi có thể làm đẩy, bởi vì tôi nhúng nó bên trong một điều khiển chuyển hướng.
>> ĐỐI TƯỢNG: Danh mục chính điều khiển chỉ cho phép bạn đi từ nơi này đến nơi?
>> RHED SHI: Có.
Vì vậy, về mặt kỹ thuật, đó là một đối tượng nơi -
như vậy, bên trong các menu đối tượng điều khiển, nó
theo dõi một mảng.
Và mảng chứa tất cả các tiếp theo xem bộ điều khiển.
Đó là lý do tại sao khi bạn nhấn trở lại, nó đi trở lại trang trước đó.
Bởi vì điều khiển chuyển hướng đối tượng, hoặc các mã mà sẽ chăm sóc của
đối tượng này, có một mảng mà giữ theo dõi các bộ điều khiển xem, và
có thể sau đó, bạn đã biết, DQ điểm điều khiển và cung cấp cho bạn lại
trước đó.
>> Vì vậy, đây là công cụ kỹ thuật, nhưng -
và tôi sẽ chỉ cho bạn sau này trong mã, nếu chúng ta có thời gian.
Tôi là loại chạy trên thời gian, nhưng -
>> Vì vậy, với quan điểm bảng, những gì chúng ta có thể làm là -
Nó thường tự động thiết lập Dynamic Prototype -
chúng ta sẽ làm cho nó tế bào tĩnh, nếu không chúng ta sẽ
chạy vào một số vấn đề.
>> Và sau đó, chúng ta hãy nói tôi sẽ có một phần.
Vì vậy, phần là như thế -
nếu bạn đã bao giờ nhìn thấy các ứng dụng âm nhạc, khi bạn có các nghệ sĩ, phần sẽ
là của A đến Z's -
các chữ cái -
và sau đó, bạn đã biết, cá nhân hàng sẽ là những cái tên nghệ sĩ.
Và như vậy, những gì mát mẻ ở đây, là tôi có thể truy cập tất cả các đối tượng bên trong
của kịch bản của tôi thông qua này trình đơn thả xuống, quá.
>> Vì vậy, tôi sẽ phải bấm vào phần của tôi, và tôi muốn bạn biết đấy, có lẽ khoảng năm hàng.
Và sau đó, bên trong mỗi hàng, Tôi muốn đặt một nhãn.
Và tôi sẽ gọi màu xanh này.
Và sau đó, tôi muốn đặt một cái nhìn giao diện người dùng, bạn biết, có thể cho, như, một hộp nhỏ.
>> Để tôi có thể cho mọi người một bản xem trước của màu sắc.
Và tôi sẽ quay trở lại tài sản và thay đổi màu sắc để, oh, tôi không
biết, chương trình này.
>> Và sau đó, nhận thấy cũng có, ở đây, khi tôi có các phụ kiện, tôi có thể có rất nhiều
các phụ kiện khác nhau bạn thường thấy.
Chỉ số công bố thông tin, chi tiết, hoặc kiểm tra đánh dấu, hoặc đơn giản chỉ là chi tiết.
Vì vậy, có lẽ chúng ta có thể làm, như, một tiết lộ chỉ số, ví dụ.
>> Và sau đó, tại sao chúng ta không có những, sao chép dán chúng, và đặt chúng vào các
dòng của bảng tiếp theo.
Vì vậy, chúng ta có thể gọi vàng này.
Và tôi có thể phải mở rộng này.
Chúng ta hãy làm cho nó màu vàng.
Và bằng cách này, chúng ta có thể sao chép dán cách của chúng tôi xuống.
Đó là những gì?
Màu tím.
>> Vì vậy, đây là tất cả các CS50 điển hình màu sắc mà bạn đã nhìn thấy trong lớp -
thực sự, xin lỗi -
hoặc trên trang web.
Hy vọng các bạn có thể nhìn thấy những gì tôi đang làm ở đây.
OK.
Tác phẩm mới nhất.
>> ĐỐI TƯỢNG: Làm thế nào bạn thêm hàng ban đầu?
>> RHED SHI: Vì vậy, câu hỏi là, làm thế nào Tôi đã thêm hàng ban đầu?
Tôi đi vào phần bảng này - hoặc tuy nhiên tôi có thể
chọn phần bảng -
và sau đó, ở đây, tôi được cập nhật số hàng.
>> Và, cho tôi hy vọng rằng công trình này.
OK.
Chúng ta hãy xem nếu công trình này.
Oh, hoàn hảo, tuyệt vời.
OK.
Trong khi tôi đang xây dựng demo của tôi, một số mọi thứ đã không phù hợp, do đó, nhờ
tiếng vỗ tay.
>> Yeah.
Vì vậy, chúng ta hãy xem.
Chúng tôi sẽ làm chín này chỉ để làm cho tất cả mọi thứ - hoặc thực sự, chúng ta hãy chỉ
biến tất cả những thành công bố thông tin chỉ số.
Và sau đó, những gì tôi muốn cho bạn thấy, quá, là làm thế nào tôi có thể mỗi người
hàng bảng và họ đã tương tác -
oh.
Không.
>> Oh.
Ngoài ra, tôi muốn cho bạn thấy -
ở đây, tôi có thể đặt tiêu đề của tôi điều khiển chuyển hướng, phải không?
Vì vậy, trên thực tế, bạn sẽ nhận thấy, ngay sau khi tôi nhúng điều khiển điểm này trong
của bộ điều khiển chuyển hướng, chúng ta thấy thanh điều hướng này ở đầu của chúng tôi
đại diện kịch bản của một bộ điều khiển xem.
Và như vậy, điều này cho chúng ta, giống như, một hình ảnh, loại, hướng dẫn để màn hình hiển thị của chúng tôi.
Điều này rõ ràng là sẽ là thanh điều hướng.
>> Và những gì tôi muốn làm một cách nhanh chóng, bây giờ, được đặt trong một -
vì vậy điều này điều khiển xem bảng tôi đã làm bằng cách thực hiện một trong những điều này và kéo nó
ở đây, và đó là những gì cho phép tôi nhanh chóng, thực sự, tạo ra một cái nhìn bảng
điều khiển.
Nếu chúng ta không có thời gian mặc dù, bạn sẽ thấy rằng, lập trình, đó là một
một chút phức tạp hơn để tạo ra một bảng điều khiển xem, bởi vì có
là một vài phương pháp mà cần thiết để bạn, loại, viết
ra để cho xem bảng bộ điều khiển sẽ được hiển thị một cách chính xác.
>> Tuy nhiên, tôi chỉ muốn cho bạn thấy, bây giờ, một ví dụ về đâu, nếu tôi thực hiện việc này,
ví dụ -
Tôi đã đặt trong một bộ điều khiển xem.
Và bây giờ, chúng ta hãy nói rằng tôi muốn kiểm soát alt màu xanh đầu tiên của tôi
dòng của bảng để ở đây.
Và tôi muốn gọi màu xanh này.
Và sau đó -
chúng ta hãy xem.
Tôi đang ở điểm bây giờ, và tôi có thể thay đổi nền màu xanh.
>> Và vì vậy, thông báo, ở đây, điều này thả xuống đơn cũng cung cấp cho bạn một hệ thống phân cấp của tất cả các
của các đối tượng.
Vì vậy, một điều quan trọng cần lưu ý, ở đây, là tất cả những điều này, ở đây -
điều khiển xem bảng này, bảng xem, xem bảng phần, xem bảng
di động - tất cả trong số này là các đối tượng, trong mã.
Vì vậy, bạn biết, một nhãn ngay bây giờ là dưới xem nội dung, vân vân.
Vv và vv.
>> Vì vậy, nếu chúng ta chạy mã này, chúng tôi sẽ thấy một cái gì đó -
chúng ta hãy xem đây - yeah.
Vì vậy, có chúng tôi đi.
Nhưng, nếu chúng ta không làm điều đó, không ai những điều khác làm việc.
Phải không?
Vì vậy, chỉ có một công trình này.
Và, vì lợi ích của thời gian, tôi sẽ không đi vào, bạn đã biết, việc đưa
xuống những người khác.
Và đây là kết thúc, loại, kịch bản -
những gì tôi muốn thể hiện bạn cho kịch bản này.
>> Và, tôi có một ví dụ làm việc ra, trên thực tế, ngay tại đây.
Vì vậy, đây là kịch bản mà tôi đã thực hiện trước đó.
Vì vậy, bạn có thể thấy, đây là điều khiển chuyển hướng của tôi.
Sau đó, tôi đã có điều khiển xem đầu tiên của tôi, sau đó tôi đã điều khiển xem bàn của tôi,
và sau đó tôi đã có tất cả các -
vì vậy trước đó, tôi đã làm một cái gì đó rất khác nhau.
Vì vậy, xin lỗi những điều đó.
Tôi có lẽ sẽ làm sạch nó lên sau trước Tôi gửi nó đi vào sản xuất.
>> Nhưng, nếu chúng ta chạy này, chúng ta sẽ thấy rằng tất cả các tùy chọn
sẵn cho chúng tôi.
Ngoại trừ tôi đã không làm cho các hình nền những màu sắc.
Vì vậy, ứng dụng đơn giản đẹp.
>> Bây giờ, chúng ta hãy cố gắng để giải điều này lập trình.
OK.
Vì vậy, để làm được điều đó, chúng ta chỉ cần đi để bắt đầu một dự án Xcode mới.
Chúng tôi sẽ làm cho nó một ứng dụng trống bây giờ, bởi vì chúng tôi không muốn có
kịch bản này.
Vì vậy, tôi chỉ đơn giản là hạn chế bản thân mình để không sử dụng bất kỳ kịch bản, và một
ứng dụng sẽ không có sản phẩm nào cho tôi một kịch bản.
Này chỉ là để ngăn chặn bản thân mình từ gian lận.
Chúng ta hãy xem.
Chờ đợi.
Đã làm tôi -
Vâng.
OK.
>> Đúng.
Vì vậy, ở đây, chúng tôi chỉ còn lại không có gì khác nhưng mã.
Vì vậy, hãy để tôi di chuyển cửa sổ này nhẹ hơn.
Đúng.
Như bạn có thể thấy ở đây, các tập tin chỉ chúng tôi đưa ra là AppDelegate.h và dấu chấm
m, và chúng tôi không có kịch bản nữa.
>> Vì vậy, nếu chúng tôi chạy này, chúng tôi vẫn sẽ đến được với các màn hình trắng, cảm ơn Chúa.
OK - màn hình trắng, nhưng không có gì khác.
Và, đây là phần quan trọng.
Đây là nơi mà hành động xảy ra.
Trong các phiên bản trước, có thường không có mã ở đây, nhưng
kịch bản cơ bản cung cấp các mã cho phần này.
Tôi sẽ không đi vào chi tiết về cách.
>> Và những gì chúng tôi muốn làm bây giờ là, chúng tôi muốn đi ở đây, và không gian nhỏ bé này
bắt đầu tạo ứng dụng của chúng tôi một lần nữa.
Vì vậy, -
có?
>> ĐỐI TƯỢNG: Phóng to?
>> RHED SHI: Zoom.
Vâng, chắc chắn.
OK.
Tôi sẽ được đánh máy, vì vậy điều này không nên vấn đề gì.
OK.
>> Vì vậy, đầu tiên, hãy nhớ chúng tôi muốn tạo ra một điều khiển chuyển hướng, phải không?
Và cũng có thể, như bạn có thể thấy ở đây, Xcode làm một công việc thực sự tuyệt vời của
tự điền.
Vì vậy, như bạn sẽ nhận thấy, tên của tất cả mọi thứ được lâu hơn rất nhiều so với
thông thường, nhưng Xcode lấp đầy nó cho bạn.
Vì vậy, tôi chỉ có thể nhấn Enter.
>> Vì vậy, tôi muốn tạo ra một chuyển hướng giao diện người dùng con trỏ điều khiển, và tôi có thể gọi nó
navigationController.
Bây giờ, tôi phải làm gì bây giờ?
Sau dấu bằng này, tôi cần phải, đầu tiên, tạo ra nó trong bộ nhớ.
Vì vậy, tôi sẽ làm NavigationController alloc -
vậy, điều này cũng tương tự như malloc, mà các bạn sử dụng trong C -
và sau đó, tôi sẽ init nó.
>> Vì vậy, nó thực sự quan trọng mà bất kỳ đối tượng mà bạn tạo ra, bạn muốn
alloc và init nó.
Điều đó sẽ tạo ra nó và instantialize nó trong bộ nhớ, và
bây giờ bạn có thể sử dụng nó.
Tất cả phải không?
Nếu bạn không làm điều đó, đối tượng của bạn không không tồn tại, và bạn sẽ chạy vào một loạt
của các vấn đề.
>> Và sau đó, tôi muốn tạo ra một bộ điều khiển xem, phải không?
Vì vậy, tôi muốn tạo ra một UIViewController sao -
như vậy, tất cả mọi thứ là một con trỏ trong Objective-C, và tôi sẽ làm
một cái gì đó tương tự, ở đây -
alloc, init.
OK.
>> Và sau đó những gì tôi sẽ làm là, tôi sẽ - vì vậy, hãy nhớ khi chúng tôi đã làm
các địa chỉ mạng bên trong điều khiển chuyển hướng?
Đây là cách bạn làm điều đó trong mã.
Bạn sẽ làm navigationController
pushViewController -
>> ĐỐI TƯỢNG: [nghe được].
Điều này sẽ xảy ra cho chúng ta, hoặc -?
>> RHED SHI: Oh, yeah.
Không.
Nó thích tôi hơn.
Không, nó sẽ làm việc cho bạn, quá.
Vì vậy, đây là tất cả các phương pháp.
Vì vậy, pushViewController là một phương pháp, và cũng có thể, cụ thể hơn, nó là một
phương pháp thể hiện của giao diện người dùng điều khiển chuyển hướng.
Bởi vì tôi đã phải tạo ra điều hướng giao diện người dùng của tôi sao điều khiển, và sau đó tôi
có thể gọi pushViewController này của tôi Ví dụ cụ thể của một chuyển hướng giao diện người dùng
điều khiển.
>> ĐỐI TƯỢNG: Chúng ta phải làm chính xác từ, hoặc dùng nó đã tồn tại cho nó?
>> RHED SHI: Vâng, bởi vì đó là một phương pháp.
Nó giống như một chức năng.
Nó giống như printf.
Nó giống như scanf.
Nó giống như strcompare.
Ngoại trừ nó biết những gì bạn có thể muốn loại, và nhận thấy rằng nó sẽ luôn luôn
đưa ra những điều cho phép hợp pháp cho bạn.
Vì vậy, nếu không có gì xuất hiện ở đây, sau đó cái gì là sai.
>> Vì vậy, pushViewController.
Vì vậy, bây giờ, tôi muốn đẩy mới của tôi tạo ra
UIViewController, và sau đó, hoạt hình -
có lẽ không.
Bởi vì đây là có được quan điểm điều khiển đầu tiên.
Ý tôi là, ngay cả khi tôi đã làm hoạt hình, nó có thể sẽ không xuất hiện, bởi vì
đó là màn hình đầu tiên.
>> Và ghi nhớ dấu ngoặc đơn.
Vì vậy, nhớ làm thế nào chúng ta sử dụng dấu ngoặc?
Và bên trong dấu ngoặc, các đối tượng kêu gọi một phương pháp -
vì vậy đối tượng của chúng tôi là chuyển hướng điều khiển, và phương pháp này là một sự thúc đẩy
điều khiển xem phim hoạt hình.
Và xem nó như thế nào có trong hai đối số, và họ đang cách nhau bằng, loại,
từ, và dấu hai chấm.
Vì vậy, Objective-C sẽ cố gắng để làm cho nó đẹp và dễ dàng để bạn có thể đọc thành tiếng -
mã của bạn - và nó có bán, loại, có ý nghĩa.
>> Tuy nhiên, công việc này là không đủ.
Hãy để tôi thu nhỏ bây giờ.
Chỉ cần làm điều này là không đủ để có được những gì chúng tôi đã đến trước đó.
Vì vậy, ở đây, bạn sẽ nhận thấy rằng có thực sự không có được bất kỳ loại
thanh, ở đây, phải không?
Không có thanh điều hướng, mà phương tiện mà chúng tôi vẫn chưa nhận được nó.
>> Và chúng tôi có thể kiểm tra mà ra, cũng có thể, bởi, có lẽ, thay đổi hình nền của
ViewController, phải không?
ViewController.background--
ah.
Vì vậy, xem như thế nào ViewController không có một màu nền, mặc dù tôi
muốn truy cập nó?
Và đó là bởi vì ViewController là một container cho xem.
Vì vậy, nó có một tài sản xem, mà sau đó có một màu nền.
>> Và, tôi có thể thiết lập nó, loại tediously, bằng cách gọi màu
trên đối tượng UIColor.
Vì vậy, thông báo đây, redColor là một phương pháp.
Đó là một phương pháp học của UIColor.
Bởi vì tôi không có để tạo ra một ví dụ thực tế của một UIColor để
gọi phương thức trên nó.
Tôi chỉ, đơn giản, gọi nó là vào loại giống như tên.
Tôi, giống như, gọi nó là trên int, int nếu có, như, một phương pháp để nó, ví dụ.
>> Và như vậy, nếu chúng ta chạy mã này, chúng tôi sẽ nhận thấy rằng nền là
thực sự không phải màu đỏ.
Nó vẫn còn màu trắng.
Và làm thế nào chúng ta có thể làm được việc đó là, để ý có những self.window.
Đó là, như, container cuối cùng cho ứng dụng của bạn.
Đó là điều cuối cùng có chứa tất cả mọi thứ trên màn hình, cho một
iPhone hoặc các ứng dụng iPad.
>> Và, thuận tiện, self.window có tài sản này được gọi là
rootViewController.
Và đó là có được con trỏ đến quan điểm điều khiển đầu tiên bên trong
của ứng dụng của bạn.
Vì vậy, những gì chúng tôi muốn làm ở đây, bây giờ, là để thiết lập rằng bằng chuyển hướng của chúng tôi
điều khiển.
Phải không?
Bởi vì, về mặt kỹ thuật, chuyển hướng điều khiển là điểm đầu tiên của chúng tôi
điều khiển.
Nó theo dõi một loạt các quan điểm khác bộ điều khiển, và chúng tôi đẩy này
xem điều khiển vào mảng trong điều khiển chuyển hướng.
>> Vì vậy, bạn không muốn làm điều này.
Điều đó sẽ không thực sự giúp bạn.
Bạn muốn làm điều này, nếu bạn muốn làm một điều khiển chuyển hướng, mà hầu hết
của bạn có thể sẽ bởi vì bạn sẽ muốn để, loại, có một số loại,
như, thực đơn để trở lại hoặc một số trang chủ để quay trở lại, chứ không phải là một
màn hình trống.
Có?
>> ĐỐI TƯỢNG: Có khó chịu để bạn có thể phóng to -
>> RHED SHI: Vâng.
Vì vậy, yeah.
Đây là mã, và bây giờ chúng ta hãy kiểm tra nó ra.
>> Vì vậy, có chúng tôi đi.
Ma thuật.
Vì vậy, OK.
Cảm ơn bạn.
OK.
Vì vậy, bây giờ, những gì chúng tôi muốn làm là - như vậy, chúng ta đang loại giới hạn, ở đây, phải không?
Chúng tôi có khả năng có thể viết tất cả mọi thứ bên trong của một chức năng này.
Nhưng, đó không phải là phát triển như thế nào iOS thường làm việc.
>> Vì vậy, những gì chúng ta sẽ làm là, chúng tôi sẽ tạo ra một số tập tin mới.
Nhưng, cụ thể hơn, chúng ta sẽ tạo một lớp Objective-C, hoặc
một đối tượng -
lớp và các đối tượng được hoán đổi đây.
Và đây là cách tôi có thể, có khả năng, tạo một lớp điều khiển U.
>> Vì vậy, đó là một lớp học phụ, như bạn sẽ nhận thấy, ở đây, đó là một sub-class của
Xem giao diện người dùng điều khiển, nhưng tôi có thể gọi nó là bất kỳ tên nào khác ở đây.
Tôi có thể gọi CS50 này, tôi có thể gọi điều khiển điểm này, tôi có thể gọi
blah này điều khiển xem -
bất cứ điều gì tôi muốn.
Đây chỉ là tên của lớp.
Tuy nhiên, nó sẽ là quan trọng bởi vì, về cơ bản, những gì tôi đang làm
ở đây là, tôi là tạo ra một tên lớp.
Vì vậy, nó sẽ là, như, một số loại loại hoặc một đối tượng.
Vì vậy, nó phải là một chút chung chung.
Nó sẽ không phải là rất cụ thể.
>> Và cũng có thể, tôi muốn chỉ ra hai tùy chọn.
Bởi vì chúng tôi đang làm tất cả mọi thứ bên trong mã, đôi khi nó là dễ dàng hơn rất nhiều
để mang lại một tập tin giao diện, như vậy mà Tôi nghĩa đen có thể kéo và thả, như
chúng tôi đã làm trước đó với kịch bản -
Bạn có biết, một nhãn hiệu, hoặc một nút, hoặc bất cứ điều gì khác.
Và như vậy, xibs là các tập tin cho phép bạn làm điều đó, và bạn phải móc nó lên
quan điểm này tập tin điều khiển.
>> Vì vậy, tôi sẽ cố tình không kiểm tra này.
Thông thường, tôi sẽ kiểm tra này, và nếu tôi chỉ làm điều này cho iPhone hoặc iPad, tôi
sẽ kiểm tra này và chỉ đơn giản là có một cho, bạn đã biết, iPhone hay iPad.
Nhưng kể từ khi tôi đang làm phổ quát, tôi sẽ để tạo ra hai trong số những người sau này.
Vì vậy, tôi sẽ cố tình bỏ chọn này.
>> Đây cũng là thực sự quan trọng.
Rất nhiều lần, tôi đã có lỗi nơi này đã không được kiểm tra.
Và như vậy, rõ ràng, tập tin này không phải là, loại, giống như, bao gồm nhập khẩu
bên trong thư mục kiểm tra này.
Và do đó, mã của tôi hoàn toàn không có ý tưởng về sự tồn tại của tập tin này, và
gây ra rất nhiều đau đớn và giờ gỡ lỗi.
Nhưng, chỉ cần đảm bảo này sẽ được kiểm tra để rằng, bạn đã biết, mục tiêu này
tập tin cho ứng dụng này.
>> OK.
Vì vậy, bây giờ chúng tôi đã tạo ra hai tập tin mới.
Và những tập tin này trông khá trống.
Và, trên thực tế, chúng ta cũng tiếp tục trên bằng cách tạo ra các tập tin xib.
Vì vậy, trước đây, tôi đã được ở Cocoa Touch thả xuống.
Bây giờ, tôi sẽ đi vào người dùng Giao diện cảm ứng, và như bạn thấy, tôi
có thể tạo ra một kịch bản.
>> Vì vậy, ngay cả khi tôi bắt đầu với một sản phẩm nào ứng dụng, tôi vẫn có thể sử dụng một
kịch bản này.
Mặc dù, nó được khôn lanh về làm thế nào bạn muốn kết nối
mà mã của bạn.
Vì vậy, tôi sẽ không đến đó.
>> Nhưng, những gì chúng tôi muốn làm bây giờ là tạo một cái nhìn.
Và bạn có thể chọn cho một chiếc iPhone hoặc iPad.
Và thông thường, để biểu thị sự khác biệt - nếu bạn đang làm một
ứng dụng phổ quát -
bạn có đặt một chiếc iPhone gạch dưới, hoặc bạn có thể làm một Twiddly.
Nó không thực sự quan trọng.
Nó chỉ đơn giản để bạn có thể phân biệt mà xem là thiết bị nào.
>> Và như vậy, bây giờ nhìn.
Tôi có một màn hình mà tôi có thể làm việc với.
Và như vậy, ví dụ, tôi có thể đặt một nhãn trên đây, bạn đã biết, và tôi cũng có thể đặt
một nút ở đây.
Tôi sẽ không bận tâm thay đổi các giá trị ở đây.
>> Nhưng, điều quan trọng ở đây là rằng chủ sở hữu của tập tin -
như vậy, tôi là bên trong của iPhone xem, tập tin iPhone xib.
Và xuống trong khu vực chuyển hướng này hoặc trình đơn thả xuống, tôi muốn đi đến
chủ sở hữu của tập tin.
Và điều này là thực sự bước quan trọng ở đây.
Tôi muốn làm cho lớp xem điều khiển, để các tập tin xib này là
sẽ được liên kết với điều khiển quan điểm của tôi.
Và bất cứ điều gì mà tôi làm bên trong quan điểm của tôi bộ điều khiển lập trình là
sẽ được phản ánh trên đây.
>> Vì vậy, tuy nhiên, chú ý rằng -
trên thực tế, chúng ta hãy làm cho quan điểm này màu xanh nền, ví dụ.
Hoặc màu xanh lá cây.
Và sau đó, vì vậy nếu bạn sẽ nhận thấy, trở lại trong mã này, đây là nơi mà chúng tôi đã nhận của chúng tôi
điều khiển chuyển hướng.
>> Mặc dù chúng tôi đã làm bước này, đó là vẫn sẽ có màu đỏ, màu xanh lá cây không.
Và có một lý do tại sao.
Đó là bởi vì, khi chúng ta inited điều khiển điểm của chúng tôi, ở đây -
xin lỗi, đó là một chút điên -
khi chúng ta inited điều khiển điểm của chúng tôi ở đây, chúng tôi inited nó của các loại chung
UIViewController.
OK?
Vì vậy, chúng tôi thậm chí không làm nó với lớp này.
>> Vì vậy, hãy nhớ rằng, điều này giống như một lớp học bây giờ.
Nó có thể được dùng như một loại, chỉ như UIViewController là một loại.
Và để sử dụng đó, những gì chúng ta cần phải làm là nhập nó -
nhập khẩu ViewController -
và, như bạn có thể thấy, nó Tự động điền nó cho tôi.
Vì vậy, ViewController -
và bây giờ, ở đây, tôi có thể thay đổi UIViewController để ViewController.
Và bây giờ, ở đây, tôi có thể thay đổi này để ViewController.
>> Hãy chạy này một lần nữa.
Nó vẫn còn đỏ.
Và lý do tại sao nó vẫn còn màu đỏ là bởi vì -
woah, những gì xảy ra ở đó?
Chúng tôi muốn kết hợp xib này tập tin với bộ điều khiển xem.
Tuy nhiên, để thực sự làm đó, chúng ta cần phải đi vào điều này.
Và khi chúng ta init, chúng tôi muốn làm initWithNibName, và sau đó chúng tôi muốn
làm tại chuỗi View_iPhone, ví dụ.
Bạn có thể bỏ qua những bó ở đây.
>> Và điều này sẽ cho phép chúng tôi, thực sự -
uh oh, có một vấn đề.
Đúng.
>> Và như vậy, có một vấn đề bởi vì, trong tập tin xem xib của chúng tôi, chúng tôi có một nhãn và
chúng ta có một nút.
Tuy nhiên, mặc dù chúng ta đã kết nối hai, không có gì bên trong
ViewController.h hoặc ViewController.m phản ánh những
nút hoặc những nhãn.
Vì vậy, chúng ta cần phải viết những người như thuộc tính của điều khiển xem.
>> Vì vậy, đây là cách bạn khai báo một tài sản.
Phải mất trong, thông thường, hai tùy chọn.
Theo mục đích của chúng tôi và buổi hội thảo này, Tôi xin nói rằng, nói chung,
hầu hết các tài sản sẽ nonatomic và giữ lại.
Bạn có thể đọc lên Google tìm kiếm, Bạn có biết, sự khác biệt giữa
nonatomic và giữ lại, bạn biết, Google hoặc một cái gì đó.
Và tôi sẽ đưa bạn đến, như, Stack Tràn, nơi mọi người sẽ có
câu trả lời cho sự khác biệt giữa những người.
Nhưng bây giờ, đó là những gì chúng tôi muốn được quan tâm.
>> Và chúng tôi muốn thực hiện một giao diện người dùng nhãn, ngôi sao, và chúng ta có thể gọi nó là bất cứ điều gì chúng ta muốn.
Chúng ta có thể gọi đây là, bạn đã biết, nhãn hiệu này.
Và, chúng tôi sẽ tạo ra một một cho các nút.
Và hãy nhớ để bao gồm các dấu hoa thị, bởi vì chúng ta đang đối phó với con trỏ
khá nhiều ở khắp mọi nơi bên trong của Objective-C.
>> Tuy nhiên, đó vẫn không giải quyết vấn đề, bạn có thể thấy ở đây.
Và lý do là vì, bất cứ khi nào chúng tôi muốn kết nối một nhãn tập tin xib hoặc một
nút để chương trình, hoặc tiêu đề và tập tin thực hiện, chúng tôi muốn
thêm đoạn mã này -
ổ cắm.
Nhận thấy rằng đó là một từ khóa.
>> Và, ngay sau khi tôi nhập xong mà ra, nó cần phải có những
hai vòng tròn, ở đây.
Thông thường, họ không điền vào
Tôi không chắc chắn lý do tại sao họ đang có.
Nhưng thông thường, bạn sẽ phải tự kết nối chúng bằng cách vào phía bên này
khu vực tiện ích.
>> Và vì vậy, ngay bây giờ, tôi đã có nhãn của tôi lựa chọn, và tôi muốn kéo mới này
tham khảo cửa hàng cho chủ sở hữu tập tin của tôi, và sau đó bấm vào Label.
Vì vậy, bây giờ, cuối cùng, nhãn này là kết nối với nhãn này.
Và nhãn này là những gì chúng ta sẽ sử dụng lập trình để thay đổi nó
văn bản, phông chữ của nó, nền tảng của nó màu sắc, vân vân.
>> Vì vậy, tại sao chúng ta không làm tương tự cho các nút?
Và như bạn sẽ nhận thấy, đối với các nút, đó là một chút phức tạp.
Bởi vì, tôi có nghĩa là, bạn đang nghĩ đến bấm vào một nút, vì vậy nó có rất nhiều
lựa chọn cho cách sử dụng có thể nhấn vào một nút.
Và sau đó, chúng ta sẽ thấy sau này mà chúng ta có thể kết nối này để chúng tôi
code để làm cho nó làm việc.
>> Vì vậy, bây giờ mặc dù, chúng tôi muốn kết nối nó vào nút thực tế
bên trong mã của chúng tôi.
Vì vậy, chúng tôi đi đến cửa hàng tham khảo mới, và sau đó làm nút.
Bây giờ, hãy chạy này một lần nữa.
Uh oh.
OK.
Tôi không biết những gì đang xảy ra ở đây bây giờ.
Whoa.
Chỉ là một thời điểm, ở đây.
>> Trên thực tế, lý do tại sao chúng ta không có một nhìn vào một ví dụ khác trong
sự quan tâm của thời gian.
OK.
Vì vậy, đây là chuẩn bị dễ dàng hơn ví dụ cho ViewController.
Như bạn có thể thấy ở đây, tôi đã bao gồm các thuộc tính cho
nhãn và nút.
Và sau đó, đoạn mã này ở đây -
IBAction này -
là một kết nối đến nút này ở đây.
Vì vậy, bạn có thể thấy ở đây, Touch Up Inside được kết nối với bộ chọn
Nút gọi là ép.
>> Vì vậy, chúng tôi thực sự có thể đi qua chuyển động một lần nữa, ở đây, bằng cách Touch Up
Bên trong và kéo nó đến Chủ sở hữu của tập tin, và sau đó
bấm vào nút ép.
Bây giờ, hãy chạy mã của chúng tôi.
Vì vậy, bây giờ, nút này hiện đang làm việc và sẽ đưa chúng ta đến trang tiếp theo.
>> Và, về mặt điều khiển điểm của chúng tôi, đây là đoạn mã mà mất
quan tâm của Button ép.
Và điều quan trọng cần lưu ý ở đây, Tôi đã tạo ra một loại xem
điều khiển được gọi là một bảng điều khiển xem.
Vì vậy, điều này cũng tương tự như sao lưu trong kịch bản, khi tôi kéo một trong
các xem bảng điều khiển vào kịch bản này.
Tôi là tạo ra một
>> Con trỏ để điều khiển xem bảng, alloc và init-ing nó, và sau đó làm
điều khiển chuyển hướng tự chấm, đẩy ViewController, đây mới
viewController.
Và tôi đã thiết lập các hình ảnh động để có, bởi vì bây giờ bên trong ứng dụng của tôi, và tôi
muốn thực sự nhìn thấy các hình ảnh động sẽ từ trang chủ để bàn
điều khiển xem.
>> ĐỐI TƯỢNG: Bạn vẫn lo lắng về thu gom rác thải?
>> RHED SHI: đó là gì?
Không.
Vì vậy, câu hỏi là, bạn có làm việc với thu gom rác thải?
Vì vậy, Xcode 4 có như ARC, đó là tính tham khảo tự động.
Và như vậy, thường là khi bạn bắt đầu một mới dự án, bạn sẽ kiểm tra xem, bởi vì
không ai thực sự muốn đối phó với giải phóng bộ nhớ và các công cụ.
Nhưng tôi nghĩ rằng trong Xcode 5, thậm chí không có rằng sự lựa chọn về dự án mới.
Vì vậy, nó sẽ tự động nào đó cho bạn.
Có?
>> ĐỐI TƯỢNG: Bạn có thể xuất khẩu một PDF trong kịch bản của bạn?
>> RHED SHI: Vâng, chắc chắn.
Vì vậy, tất cả trong số này sẽ được bao gồm trong mã nguồn, vì vậy các bạn có thể kiểm tra
dự án Xcode thực tế cho nó.
Yeah?
>> ĐỐI TƯỢNG: Nhưng, tôi có nghĩa là, như, tôi có thể in PDF với kịch bản của tôi?
Nếu tôi chỉ muốn xuất khẩu hình ảnh để hiển thị một ai đó.
>> RHED SHI: Oh yeah.
Tôi nghĩ rằng, có thể, bạn có thể chỉ chụp màn hình.
Yeah, và gửi cho họ một màn hình bắn hoặc một cái gì đó.
Yeah.
>> Vì vậy, chúng ta hãy xem.
Vì lợi ích của thời gian, tôi nghĩ rằng đó là tất cả tôi có thể bao gồm ngày hôm nay.
Nhưng, tôi biết đó là, trên thực tế, chỉ cần hầu như không chạm vào các bề mặt của iOS
phát triển.
Vì vậy, xin vui lòng liên hệ với tôi nếu bạn có thắc mắc về iOS
phát triển.
Và, hy vọng, tôi sẽ có thể làm sạch một số các mã cho nguồn
các tập tin mã, do đó bạn sẽ có một số ví dụ thực sự tốt đẹp để làm việc với.
>> Ngoài ra, nếu các bạn đang đi đến CS50 Hackathon, tôi có thể có hoặc có thể
không có mặt ở đó, và tôi có thể giúp đỡ với một số phát triển iOS, quá.
Vì vậy, cảm ơn rất nhiều, các cậu.