Trong Java, khi bạn ghi đè phương thức, bạn được khuyên (gần như bắt buộc) để thêm chú thích @Override
. Có một quy ước để đánh dấu (hoặc trong ý kiến, hoặc bằng một số cơ chế khác) phương pháp ghi đè trong thế giới Objective-C?Quy ước mục tiêu-C cho các phương thức ghi đè
Trả lời
Không. Tất cả các phương pháp trong mục tiêu-C được gửi qua tin nhắn của Objective-C, vì vậy tất cả các phương pháp có thể được ghi đè. Đó là một phần của ngôn ngữ.
Không có quy ước nào để đánh dấu điều này. Đó là một phần của ngôn ngữ mà nó xảy ra, và nếu bạn đã bình luận nếu không nó sẽ chỉ gây nhầm lẫn khi bạn đã làm nó sau này, vô tình hoặc cố ý.
Tôi biết rằng, tình hình là như nhau với Java - (gần như) tất cả các chức năng là ảo, tuy nhiên tôi vẫn thấy điểm để cảnh báo rằng bạn đang ghi đè một phương thức cha mẹ. Nó chắc chắn sẽ làm cho các lỗi như không gọi '[super loadView]; 'dễ dàng hơn để phát hiện –
Bạn cần phải kiểm tra tài liệu và đọc phương pháp của bạn. Một số phương pháp, điều quan trọng là gọi siêu. Một số phương pháp, điều quan trọng là bạn không nên gọi siêu. Trong quá khứ, tôi đã nói những gì bạn muốn là không thể cho IDE, nhưng rõ ràng Apple có thể làm hầu như bất cứ điều gì bây giờ mà họ kiểm soát trình biên dịch, khuôn khổ và ngôn ngữ, vì vậy nó có thể là giá trị nộp một đề nghị thông qua lỗi của họ phóng viên. –
(btw, câu hỏi hay) –
Không, không thực sự.
Điều này dường như không quan trọng lắm, có thể do công văn động.
Tôi không chắc chắn nếu Xcode thực hiện điều này, nhưng AppCode IDE từ Jetbrains tự động annotates phương pháp ghi đè với chút màu xanh override huy hiệu ở bên lề, như vậy:
. . thêm vào đó (cũng được hiển thị), tôi cũng muốn tạo một số mẫu trực tiếp (còn gọi là các đoạn mã trong Xcode) để chú thích các phương thức ghi đè bằng thẻ #pragma. Tôi thấy rằng nó giúp để xác định một cấu trúc tiêu chuẩn theo thứ tự này:
- phương pháp lớp
- khởi & phá hủy các phương pháp
- phương pháp công cộng/giao thức
- phương pháp ghi đè
- phương pháp riêng
và bằng cách có Live Templates/Code Snippets Tôi chỉ có thể nhập 'ghi đè lên [tab]' và IDE sẽ tạo thẻ #pragma cho tôi.
. . có lẽ bạn thậm chí có thể sử dụng OCLint để kiểm tra xem cấu trúc này có được tôn trọng hay không.
- 1. Quy ước đặt tên Python cho các thuộc tính và phương thức có nghĩa là được ghi đè
- 2. Ghi đè phương thức ghi đè (C#)
- 3. ghi đè phương thức đệ quy trong python
- 4. Quy ước đặt tên cho phương thức dịch vụ
- 5. Ghi đè đăng ký ghi đè Tạo Phương thức
- 6. Gọi phương thức ghi đè, siêu lớp cuộc gọi đã ghi đè phương thức
- 7. Django - Ghi đè phương thức Model.create()?
- 8. C# Ghi đè phương thức GetHashCode
- 9. ghi đè bằng phương thức() của Pair
- 10. Ghi đè so với phương thức ẩn
- 11. Ghi đè phương thức với đối tượng
- 12. Quy ước đặt tên C# cho các phương thức mở rộng cho giao diện
- 13. Ghi đè phương thức ở cấp độ
- 14. Ghi đè phương thức gửi của XMLHttpRequest
- 15. Cách "ghi đè" các phương thức mở rộng trong .NET?
- 16. Ghi đè các phương thức liên quan của Django
- 17. Xác thực jQuery - Ghi đè phương thức xác thực lõi
- 18. @AspectJ pointcut cho các phương pháp ghi đè phương thức giao diện bằng chú thích
- 19. Ghi đè phương thức bằng so với phương pháp mới
- 20. Quy ước đặt tên và cấu trúc cho các lớp và phương thức tiện ích
- 21. Tại sao tùy chọn 'ảo' cho các phương thức ghi đè trong các lớp dẫn xuất?
- 22. Các phương pháp ghi đè trong JavaDoc
- 23. Nhận xét về phương thức ghi đè và bị ghi đè cùng lúc trong C#?
- 24. Mục tiêu-C - Phương pháp ghi đè trong phân lớp
- 25. C#: Ghi đè phương thức ToString() cho các ngoại lệ tùy chỉnh
- 26. Tìm phương pháp ghi đè
- 27. Làm cách nào để ghi đè quy ước đặt tên đường ray?
- 28. ghi đè một phương thức sử dụng một lớp học
- 29. Các quy ước cho 'nhập khẩu ... là'
- 30. Ghi đè phương thức xác thực - Quản trị Django
Câu hỏi liên quan: [Mục tiêu-C tương đương ghi đè trong C#] (http://stackoverflow.com/questions/1034554/objective-c-equivalent-of-override-in-c-sharp) –