2009-11-24 41 views

Trả lời

6

Đại biểu là một đối tượng. Phương thức ủy nhiệm là một phương thức mà đối tượng ủy nhiệm được mong đợi thực hiện. Một số phương thức đại biểu được yêu cầu, trong khi một số phương pháp thì không. Trong IOS, hầu hết các đại biểu được dự kiến ​​sẽ tuân theo một giao thức Objective-C; khai báo giao thức sẽ cho bạn biết phương thức nào là tùy chọn và được yêu cầu.

5

A đại biểu đơn giản chỉ là một tham chiếu đến đối tượng khác và phương thức ủy quyền là phương thức của đại biểu.

A phương thức ủy quyền triển khai cơ chế gọi lại thường lấy người gửi làm một trong các tham số được gọi.

42

Thật khó để giải thích, nhưng đại biểu thực hiện các phương thức thay mặt cho một đối tượng khác. Chế độ xem bảng không biết phải làm gì khi bạn chọn một mục trong danh sách. Thay vào đó, nó phải yêu cầu đối tượng đại biểu một câu hỏi, cụ thể là didSelectRowAtIndexPath. Thông tin duy nhất mà tableview biết là phần và hàng mà người dùng đã khai thác. Vì vậy, chế độ xem bảng cung cấp thông tin này cho đối tượng đại biểu bằng cách chủ yếu nói rằng "Xin chào, người dùng đã nhấn vào Hàng 4 trong Phần 0. Làm điều gì đó".

Đối tượng đại biểu tìm phương thức didSelectRowAtIndexPath và thực thi mã bên trong.

Có rất nhiều phương thức đại biểu cho nhiều đối tượng khác nhau. Ví dụ, đối tượng Text Field không thể tự làm bất cứ điều gì. Thay vào đó, nó sử dụng một đại biểu để thực hiện các hành động. Nếu bạn nhấn phím enter trên bàn phím trên màn hình, trường văn bản sẽ yêu cầu đối tượng ủy nhiệm thực hiện một phương thức cụ thể, textFieldShouldReturn. Nếu đại biểu bạn đặt cho trường văn bản của bạn không có phương thức textFieldShouldReturn, trường văn bản sẽ không biết phải làm gì khi bạn nhấn nút enter.

Điều này có hợp lý không?

+1

Điều đó đã giúp ích rất nhiều. Cám ơn rất nhiều! –

+0

Lời giải thích thực sự rất hay .. Tôi sẽ đưa ra ví dụ tương tự cho học viên để giải thích khái niệm đại biểu .. –

+0

Câu trả lời hay ... – konyv12

0

Tất cả ứng dụng iOS sử dụng Ủy quyền. Ngay cả những cái cơ bản. Nó đã có sẵn trong mã họ cung cấp cho bạn. Trong các ngôn ngữ khác, bạn sẽ sử dụng một cái gì đó như thừa kế.

Cũng giống như trong thế giới thực, Đại biểu đại diện cho ai đó/điều gì đó hoặc trong trường hợp này là một đối tượng.

Lấy các đối tượng giao diện người dùng chẳng hạn, họ đã có các phương pháp để thực hiện các tác vụ. Nhưng chúng có thể được kết nối với viewController của bạn (đối tượng/lớp tùy chỉnh) và chúng có thể ủy thác trách nhiệm cho (các) đối tượng của bạn.

Một vài điều cần nhớ:

  1. này tất cả được thực hiện bằng cách sử dụng giao thức đại biểu.
  2. Đó là một điều tự nguyện. để các đối tượng của bạn chọn tham gia làm đại biểu.
  3. Xem giao thức Ủy quyền và triển khai phương pháp. Một số là tùy chọn và một số là bắt buộc.
  4. Đảm bảo đối tượng ủy quyền được kết nối với đối tượng của bạn.
+0

Bạn đang rất gần, nhưng tôi nghĩ rằng từ ngữ của bạn có thể sử dụng một chút cải tiến. Tôi nghĩ sẽ tốt hơn nếu nói rằng các đại biểu được sử dụng cho những thứ mà bản thân đối tượng không thể tự làm. Nói UITableView, nó là một lớp quản lý và vẽ một bảng, nhưng nó không thể tự làm mọi thứ vì nó cần một đại biểu để biết có bao nhiêu hàng để vẽ, nội dung của các hàng đó, v.v. –

Các vấn đề liên quan