2012-06-19 39 views
5

Tôi đã học về Đoàn và nguồn dữ liệu cho lập trình iOS và cần hỏi, có bất kỳ sự khác biệt nào bạn cần thực hiện khi bạn thực hiện giao thức nguồn dữ liệu so với giao thức đại biểu không?Ủy quyền và nguồn dữ liệu iOS

Ngoài ra làm thế nào tôi có thể thực hiện một đại biểu cho nhiều đối tượng giống nhau trong một đại biểu? Ví dụ một đối tượng có nhiều cảnh báo tùy chỉnh duy nhất.

--Edit--

Một ví dụ cho phần thứ hai:

Một đối tượng đó có bốn cảnh báo khác nhau với nút khác nhau. Vì đối tượng cần phải ra lệnh cho mỗi nút hoạt động như thế nào bằng cách trở thành đại biểu cho các cảnh báo. Làm thế nào tôi có thể thiết lập các phương thức đại biểu để xác định từng cảnh báo?

Trả lời

14

Cả hai loại đối tượng nhiều hay ít đều hành xử theo cùng một cách, đó là vấn đề của những gì họ làm đó là câu hỏi.

Đối tượng loại đại biểu phản hồi các hành động mà đối tượng khác thực hiện. Ví dụ, giao thức UITableViewDelegate có các phương thức như didSelectRowAtIndexPath để thực hiện các hành động khi người dùng chọn một hàng cụ thể trong bảng.

Trong khi đối tượng kiểu nguồn dữ liệu cung cấp dữ liệu cho đối tượng khác. Ví dụ một lần nữa, giao thức UITableViewDataSource có các phương thức như cellForRowAtIndexPathnumberOfRowsInSection chỉ ra những gì sẽ được hiển thị trong bảng.

Không có sự khác biệt khó khăn giữa hai điều khoản về biên dịch, nó chỉ đơn giản là một kiểu mã hóa để làm cho những gì các đối tượng làm những gì rất rõ ràng cho người dùng của mã.

EDIT:

Để trả lời câu hỏi thứ hai của bạn: nếu bạn muốn mỗi cảnh báo để phản ứng khác nhau, bạn sẽ cần phải viết một đại biểu khác nhau cho mỗi cảnh báo. Ví dụ: nếu một trong các cảnh báo của bạn là cảnh báo xác nhận lưu (có thể bạn sẽ ghi đè lên một tệp và bật lên để xác nhận rằng người dùng muốn làm gì), bạn sẽ có một đối tượng như:

@interface SaveConfirmAlertDelegate : NSObject<UIAlertViewDelegate> 
@end 

Và trong @implementation cho SaveConfirmAlertDelegate bạn sẽ triển khai tính năng lưu phù hợp tùy thuộc vào nút mà người dùng đã nhấn trong cảnh báo.

Khi bạn tạo chế độ xem cảnh báo, bạn chỉ định đối tượng đại biểu sẽ là gì, điều này không phải là self. Bạn có thể có bốn đại biểu của bạn được lưu trữ như các đối tượng khác nhau và đặt chúng trên các cảnh báo khi cần thiết.

Tôi hy vọng điều này sẽ xóa mọi thứ lên

+0

Cảm ơn bạn đã giải thích vấn đề đầu tiên của mình. Tôi đã thêm một ví dụ cho câu hỏi của mình. – RMDan

+0

@RMDan Tôi đã thêm một lời giải thích bổ sung cho câu hỏi thứ hai của bạn, tôi hy vọng rằng sẽ xóa mọi thứ lên một chút –

+0

Điều đó có ý nghĩa hoàn hảo. Tôi sẽ phải tìm hiểu thêm về phái đoàn nhưng nó bắt đầu có ý nghĩa. – RMDan

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