Là người mới đối với nhà phát triển khách quan, ca cao và iPhone nói chung, tôi có một mong muốn mạnh mẽ để tận dụng tối đa ngôn ngữ và khuôn khổ.
Một trong những tài nguyên tôi đang sử dụng là ghi chú lớp CS193P của Stanford mà họ đã để lại trên web. Nó bao gồm các ghi chú bài giảng, bài tập và mã mẫu, và vì khóa học được đưa ra bởi nhà phát triển của Apple, tôi chắc chắn coi đó là "từ miệng ngựa".
Trang web của lớp: http://www.stanford.edu/ class / cs193p / cgi-bin /
index.php
Bài giảng 08 có liên quan đến một nhiệm vụ để xây dựng một ứng dụng dựa trên UINavestionControll có nhiều UIViewControllers được đẩy lên ngăn xếp UINavestionControll. Đó là cách hoạt động của UINavestionControll. Điều đó hợp lý. Tuy nhiên, có một số cảnh báo nghiêm khắc trong slide về giao tiếp giữa các UIViewControllers của bạn.
Tôi sẽ trích dẫn từ trang trình bày nghiêm túc này:
http://cs193p.stanford.edu/doads/08-NavlationTabBarControllers.pdf
Trang 16/51:
Làm thế nào để không chia sẻ dữ liệu
- Biến toàn cầu hoặc singletons
- Điều này bao gồm đại biểu ứng dụng của bạn
- Phụ thuộc trực tiếp làm cho mã của bạn ít sử dụng lại
- Và khó khăn hơn để gỡ lỗi và kiểm tra
Đồng ý. Tôi thất vọng với điều đó. Đừng mù quáng ném tất cả các phương thức của bạn sẽ được sử dụng để liên lạc giữa trình điều khiển khung nhìn vào đại biểu ứng dụng của bạn và tham chiếu các phiên bản của trình điều khiển khung nhìn trong các phương thức ủy nhiệm ứng dụng. Hội chợ 'nuff.
Xa hơn một chút, chúng tôi nhận được slide này cho chúng tôi biết những gì chúng ta nên làm.
Trang 18/51:
Thực tiễn tốt nhất cho luồng dữ liệu
- Chỉ ra chính xác những gì cần được truyền đạt
- Xác định tham số đầu vào cho bộ điều khiển xem của bạn
- Để liên lạc sao lưu hệ thống phân cấp, hãy sử dụng khớp nối lỏng lẻo
- Xác định giao diện chung cho người quan sát (như ủy quyền)
Slide này sau đó được theo sau bởi những gì dường như là một slide giữ chỗ, trong đó giảng viên sau đó rõ ràng thể hiện các thực tiễn tốt nhất bằng cách sử dụng một ví dụ với UIImagePickerControll. Tôi muốn các video có sẵn! :
Ok, vậy ... tôi sợ objc-fu của tôi không mạnh lắm. Tôi cũng có một chút bối rối bởi dòng cuối cùng trong đoạn trích dẫn trên. Tôi đã chia sẻ công bằng về việc này và tôi thấy những gì dường như là một bài viết hay nói về các phương pháp khác nhau của các kỹ thuật Quan sát / Thông báo:
http://cocoawithlove.com/2008/06/five-approaches-to -lắng nghe-quan sát.html
Phương pháp số 5 thậm chí chỉ ra các đại biểu là một phương thức! Ngoại trừ .... các đối tượng chỉ có thể đặt một đại biểu tại một thời điểm. Vậy khi tôi có nhiều giao tiếp điều khiển khung nhìn, tôi phải làm gì?
Ok, đó là băng nhóm thành lập. Tôi biết tôi có thể dễ dàng thực hiện các phương thức giao tiếp của mình trong đại biểu ứng dụng bằng cách tham chiếu nhiều trường hợp trình điều khiển chế độ xem trong ứng dụng của tôi nhưng tôi muốn thực hiện đúng cách này.
Hãy giúp tôi "làm điều đúng đắn" bằng cách trả lời các câu hỏi sau:
- Khi tôi đang cố gắng đẩy một trình điều khiển khung nhìn mới trên ngăn xếp UINavestionControll, ai sẽ thực hiện thao tác đẩy này. Mà lớp / tập tin trong mã của tôi là nơi có đúng không?
- Khi tôi muốn ảnh hưởng đến một số phần dữ liệu (giá trị của một iVar) trong một trong những UIViewControllers của tôi khi tôi ở một UIViewControll khác , cách "đúng" để làm điều này là gì?
- Cho rằng chúng ta chỉ có thể có một đại biểu được đặt tại một thời điểm trong một đối tượng, việc triển khai sẽ như thế nào khi giảng viên nói "Xác định giao diện chung cho người quan sát (như ủy nhiệm)" . Một ví dụ mã giả sẽ rất hữu ích ở đây nếu có thể.