Video: Hướng dẫn ẩn ứng dụng trên iphone,ipad một cách đơn giản nhất 2025
Mục tiêu-C khối giống như các chức năng truyền thống C trong đó khối là nhỏ, đơn vị khép kín của các mã trong ứng dụng iOS của bạn. Họ có thể được thông qua như là đối số của các phương pháp và các chức năng và sau đó được sử dụng khi họ đang cần thiết để làm một số công việc. (Giống như nhiều chủ đề lập trình, việc hiểu các đối tượng khối dễ dàng hơn khi bạn sử dụng chúng.)
Với iOS 4 và các phiên bản mới hơn, một số phương pháp và chức năng của các khung công tác hệ thống đang bắt đầu chiếm các khối như các tham số, bao gồm: < Trình xử lý hoàn thành
Trình xử lý thông báo-
Trình xử lý lỗi
-
Kiểm kê
-
Phân loại
-
Tại đây, bạn có thể sử dụng một phương pháp dựa trên khối để tạo ra một chiếc xe, các đối tượng cũng có một số sử dụng khác, đặc biệt là trong Grand Central Dispatch và lớp NSOperationQueue, hai công nghệ được đề nghị để xử lý đồng thời. Hãy kiểm tra chế biến đồng thời.
-
Một trong những giá trị của việc sử dụng các khối là bạn có thể truy cập các biến cục bộ (cũng như các biến dụ), mà bạn không thể làm trong một hàm hoặc một callback. Bạn cũng không phải truyền dữ liệu xung quanh - một khối có thể sửa đổi các biến để truyền dữ liệu trở lại. Ngoài ra, nếu bạn cần thay đổi một cái gì đó, không có API để thay đổi, với hiệu ứng gợn cùng của nó.
Đôi khi bạn dễ dàng làm theo những gì đang xảy ra bằng cách khai báo một biến khối và truyền nó như là đối số cho phương thức. Tuy nhiên, cú pháp khai báo cũng tương tự như cú pháp tiêu chuẩn cho các con trỏ hàm, ngoại trừ việc bạn sử dụng dấu caret (^) thay vì một dấu sao dấu hoa thị (*).
+ (void) animateWithDuration: (NSTimeInterval) các hoạt hình thời gian: (void (^) (void)) hoàn thành hoạt hình: (void (^) (BOOL hoàn thành)) hoàn thành;
Apple đang xử lý các khối như là một mẫu thiết kế chính, lên đó với sự kế thừa và sự ủy nhiệm - vì vậy đừng ngạc nhiên khi thấy các khối được sử dụng ngày càng nhiều.Tuy nhiên, vì nó là một bước tiến tad, mã được điều tra sâu, do đó bạn sẽ cảm thấy thoải mái với các khối, mặc dù cú pháp kỳ lạ thực sự.
void (^) (void)) animations
hoàn thành được định nghĩa như là một khối mà không có trở lại giá trị và có một tham số đối số Boolean đơn:
(void (^) (BOOL đã hoàn thành)) hoàn thành
Khi bạn tạo một dòng nội dòng, bạn chỉ cần sử dụng toán tử caret (^) để chỉ sự bắt đầu của một khối sau đó làm theo với mã được bao quanh trong niềng răng bình thường.Đó là những gì đã xảy ra với
hoạt hình: ^ {tự. xe hơi. center = center;}
and
hoàn thành: ^ (BOOL đã hoàn thành) {[tự xoay];}
Mặc dù trong ví dụ này bạn sử dụng khối nội tuyến, bạn cũng có thể tuyên bố chúng giống như bất kỳ biến địa phương khác. Thêm mã in đậm vào phương pháp testDrive của bạn thay thế những gì bạn đã có ở chỗ đó.
- (IBAction) testDrive: (id) sender {CGPoint center = CGPointMake (xe trung tâm, x, tự xem khung, nguồn gốc, xe hơi …).
void
(^ animation) () =
^ ()
{ tự. xe hơi. trung tâm = trung tâm; }; void (^ hoàn thành) (BOOL) = ^ (BOOL đã hoàn thành) ([tự xoay]; }; [UIView animateWithDuration: 3 hoạt hình: hoạt hình hoàn thành: hoàn thành]; } Khi bạn khai báo một khối, bạn sử dụng toán tử caret (^) để chỉ ra sự bắt đầu của một khối với mã được bao quanh trong dấu ngoặc bình thường, và một dấu chấm phẩy để cho biết kết thúc biểu thức khối. Tuyên bố trong Liệt kê 10-2 khá giống với những gì bạn thấy trong câu lệnh animateWithDuration: animations: completion: method, ngoại trừ các định danh đã được di chuyển xung quanh một chút. Cả hai đều được in đậm để làm cho một chút dễ dàng hơn để xem: + (void) animateWithDuration: (NSTimeInterval) hoạt hình thời gian: ( void (^) (void))
hoàn thành hoạt hình: (void (^) (BOOL hoàn thành)
) hoàn thành; Ở đây, bạn khai báo hai biến khối bằng cách sử dụng toán tử ^: một với tên của các hình động mà không có giá trị trả về và một có tên hoàn thành không có giá trị trả về và sẽ lấy BOOL làm đối số duy nhất của nó: void (^ animation) () void (^ completion) (BOOL) Điều này giống như bất kỳ tuyên bố biến khác (int i = 1, ví dụ), trong đó bạn làm theo dấu bằng với định nghĩa của nó. Bạn sử dụng toán tử ^ một lần nữa để chỉ ra sự bắt đầu của
khối chữ
- định nghĩa được gán cho biến khối. Các khối chữ bao gồm tên đối số (đã hoàn thành) cũng như cơ thể (mã) của khối và được chấm dứt với một dấu chấm phẩy:
void
(^ animation) () = ^ () {bản thân. xe hơi. trung tâm = trung tâm;};
void (^ hoàn thành) (BOOL) = ^ (BOOL đã hoàn thành) {[tự xoay];}; Sau khi nhận được hang của khối, bạn sẽ tìm thấy tất cả các loại cơ hội để sử dụng chúng để đơn giản hóa mã của bạn.
