2012-06-06 46 views
23

Tôi là một lập trình viên C và C++ đang cố bắt đầu với Mục tiêu-C. Tôi thực sự hoang mang, mặc dù, bởi sự vắng mặt hoàn toàn rõ ràng của một tài liệu tiêu chuẩn cho ngôn ngữ và thư viện chuẩn. Tôi có thể hiểu rằng không có tiêu chuẩn ISO, nhưng không có tài liệu tham khảo nào là tất cả các tài liệu tham khảo ? Và làm sao mà không ai có vẻ rất lo lắng về tình trạng này? (Phải thừa nhận rằng, thật khó để Google cho một điều như vậy, bởi vì "tham khảo", "tài liệu", và "tiêu chuẩn" là tất cả các điều khoản quá tải. Vì vậy, nó có thể là tôi đã bỏ lỡ một cái gì đó quan trọng.)Tài liệu tiêu chuẩn mục tiêu-C

Câu hỏi này được gần như yêu cầu cùng một điều: Where can i find a document explaining how Objective-C is implemented và câu trả lời duy nhất được cung cấp là "đọc mã nguồn này được xuất bản bởi Apple mà là khá gần với những gì thực hiện của họ đã làm một vài năm trước đây, có thể".

Trang này: http://clang.llvm.org/docs/ObjectiveCLiterals.html bao gồm một đoạn ngữ pháp chính thức cho mục tiêu-C, nhưng trớ trêu thay nó trong ngữ cảnh mô tả một tính năng mà Clang vừa tự mình thêm vào và không ai khác hỗ trợ. Có một ngữ pháp khác ở đây: http://www.omnigroup.com/mailman/archive/macosx-dev/2001-March/022979.html nhưng đã hơn 10 năm.

Để thu hẹp câu hỏi xuống mức tối thiểu nhất: Tôi muốn biết phương pháp nào được đảm bảo được cung cấp bởi "Đối tượng" và hành vi của từng phương pháp là gì. Đối với các ngôn ngữ khác, loại thông tin này thường được cung cấp bởi một cái gì đó như thế này: http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html

+1

+1, câu hỏi hay và được nghiên cứu kỹ lưỡng. hãy chú ý sử dụng các thẻ thích hợp từ lần sau, để đảm bảo khả năng hiển thị tốt hơn, cho [đúng người] (http://stackoverflow.com/tags/objective-c/topusers). cũng đọc thẻ wiki trước khi gắn thẻ và đảm bảo ý nghĩa của chúng là những gì bạn dự định. –

+0

Câu hỏi hay. NSObject ([iOS] (https://developer.apple.com/library/ios/#documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html)/[OS X] (https: // nhà phát triển .apple.com/library/mac/# documentation/Cocoa/Reference/Foundation/Classes/nsobject_Class/Reference/Reference.html)) là một lớp btw gốc. –

Trả lời

5

Tôi nghĩ rằng tôi hiểu câu hỏi của bạn một cách chính xác, vì vậy tôi sẽ trả lời phù hợp ...

tôi khuyên các tài liệu trong Apple Developer Library. Dưới đây là một vài hướng dẫn cơ bản để giúp bạn bắt đầu:

Concepts in Objective-C Programming

Programming with Objective-C

Cocoa Fundamentals Guide

iOS App Programming

Các tài liệu có nguồn gốc dứt khoát cho Objective-C và Cocoa thực hành tốt nhất và các tiêu chuẩn mã hóa. Có nhiều tài liệu hơn về nhiều chủ đề, vì vậy hãy đảm bảo kiểm tra trang web đó.

Bạn cũng đã hỏi về cách biết phương thức nào có sẵn cho các đối tượng. Để biết điều đó, bạn có thể xem Tài liệu tham khảo lớp học.

Ví dụ:

NSObject Class Reference

Sự khác biệt giữa các hướng dẫn và tài liệu tham khảo lớp là các hướng dẫn viên được thêm về các khái niệm đằng sau mã trong khi tài liệu tham khảo lớp là một danh sách các phương pháp và tính sẵn cho một lớp học.

Hy vọng điều này sẽ hữu ích.

14

Thật không may là không có chuẩn cho ObjC vì có C++ hoặc C. Apple là người dùng chính và trình điều khiển đằng sau ngôn ngữ, việc triển khai trình biên dịch (bit ObjC của Clang) là chuẩn thực tế. Tài liệu cũ của họ (broken link) "The Objective-C Programming Language" gần giống như bạn đã nhận được một phiên bản văn xuôi, và nó không ở đâu gần độ chính xác của một trong các tiêu chuẩn ngôn ngữ khác (và nó có xu hướng tụt lại phía sau trình biên dịch).

Nó vẫn có thể trôi nổi trên web ở đâu đó, nhưng nó không còn cập nhật nữa. "Programming with Objective-C" dường như là sự thay thế dự định của họ (nhưng một lần nữa, đó là không có gì là như một tiêu chuẩn).

Về your comment (chỉ liên kết 10k) trong câu trả lời đã xóa của Tim, lớp gốc Cocoa là NSObject và giao diện is documented nhưng nguồn của nó không khả dụng. Lưu ý rằng NSObject protocol cũng là một phần cực kỳ quan trọng của chức năng của đối tượng Cocoa. Thời gian chạy của Apple là open-source, * và có một lớp gốc được gọi là Object, tôi giả định cho các mục đích của cuộc biểu tình. Nó không được sử dụng trong lập trình Cocoa.

Bạn đã biết tất cả điều này, tất nhiên. Câu trả lời trực tiếp cho câu hỏi của bạn là, "không có một". Hầu hết cú pháp cũng giống như C, tuy nhiên, như bbum chỉ ra: Authoritative description of ObjectiveC string literals? (vâng, tôi đã sao chép nhận xét của tôi từ đó vào phần đầu của câu trả lời này).


* Lưu ý rằng trái ngược với những gì bạn nói trong câu hỏi của bạn, đây là thực tế , up-to-date, thời gian chạy.

1

Tìm thấy ít nhất một số các định nghĩa ngôn ngữ của Objective-C, trong đó có cú pháp, vv (xem link)

Tôi chỉ là bây giờ mà bạn đã được 3 năm trước (theo ngày trong câu hỏi của bạn) : Tôi bắt đầu đi vào Objective-C, và tôi thấy nó lạ lẫm đến mức dường như không có tài liệu tham khảo, nơi tôi có thể tìm kiếm ý nghĩa chính xác và định nghĩa cú pháp, từ khóa, v.v.

Tôi đã khám phá ra rằng ít nhất một số trong số đó có thể được tìm thấy trong một tài liệu liên quan đến ca cao (Cocoa Core Competencies). Liên kết ví dụ chuyển đến định nghĩa của từ khóa "@property".

Trong POV của tôi, điều này không chỉ liên quan cụ thể đến ca cao mà còn xác định phần mở rộng ngôn ngữ Objective-C. của C. Thats lý do tại sao tôi không tìm kiếm trong tài liệu labled "Cocoa".

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