Вопрос по objective-c – Стандарт стандартов Objective-C

24

Я программист на C и C ++, пытаюсь начать работу с Objective-C. Я, однако, действительно сбит с толку очевидным полным отсутствием стандартного документа для языка и стандартной библиотеки. Я могу понять, что стандарта ISO нет, но нет справочного документаat all? И как получается, что никто, кажется, не очень обеспокоен таким положением вещей? (Следует признать, что Google трудно для такой вещи, потому что «ссылка», «документ» и «стандарт» - все перегруженные термины. Таким образом, возможно, что я только что пропустил что-то критическое.)

Этот вопрос близок к тому же:Где я могу найти документ, объясняющий, как реализован Objective-C и единственным ответом было «прочитать этот исходный код, опубликованный Apple, что довольно близко к тому, что их реализация сделала несколько лет назад, может быть».

Эта страница:http://clang.llvm.org/docs/ObjectiveCLiterals.html включает фрагмент формальной грамматики для Objective-C, но по иронии судьбы это в контексте описания функции, которую Clang только что отключил и добавил самостоятельно, и которую больше никто не поддерживает. Здесь другая грамматика:http://www.omnigroup.com/mailman/archive/macosx-dev/2001-March/022979.html но ему больше 10 лет.

Чтобы сузить вопрос до минимума: я хотел бы знать, какие методы гарантированно предоставляются «объектом» и каково поведение каждого метода. Для других языков этот тип информации обычно предоставляется примерно так:http://docs.oracle.com/javase/1.5.0/docs/api/java/lang/Object.html

+1, хороший вопрос и хорошо проработанный. позаботьтесь об использовании правильных тегов в следующий раз, чтобы обеспечить лучшую видимость, дляthe right people, также прочитайте теги вики перед тем, как ставить теги, и убедитесь, что их значения соответствуют вашим намерениям. bool.dev
Хороший вопрос действительно. NSObject (iOS / OS X) является корневым классом, кстати. Filip Radelic
C и C ++ стандартизируют свои библиотеки. Обратите внимание, что какао не стандартизировано, поэтому NSObject полностью зависит от решения Apple. Существуют альтернативные библиотекам какао, такие как GnuStep и objfw. Странно, что языковой спецификации нет. Тем более что Objective-C включен в GCC, независимо от Apple. Justin Meiners

Ваш Ответ

3   ответа
15

для ObjC нет стандарта, как для C ++ или C. Apple, являющийся основным пользователем и драйвером языка, их реализация компилятора (биты Clang в ObjC) - это де-факто Стандарт. Их старый документ(broken link) "The Objective-C Programming Language"  было примерно так же близко, как и к прозе, и это было далеко от точности любого из этих других языков & apos; Стандарты (и это имеет тенденцию отставать от компилятора).

Возможно, он все еще где-то витает в сети, но уже не актуален.& quot; Программирование с помощью Objective-C & quot; кажется, что их предполагаемая замена (но, опять же, этоnothing как стандарт).

относительноваш комментарий (Только 10 тыс. Ссылок) под удаленным ответом Тима корневой класс КакаоNSObjectи его интерфейсзадокументировано, но его источник недоступен. Обратите внимание, чтоNSObject protocol также является чрезвычайно важной частью функциональности объекта Какао. Время выполнения AppleОткрытый исходный код* и имеет корневой класс с именемObjectЯ полагаю, в целях демонстрации. Он не используется в программировании Какао.

Вы уже знаете обо всем этом, конечно. Прямой ответ на ваш вопрос - «нет». Большая часть синтаксиса такая же, как у C, однако, как указывает bbum:Авторитетное описание строковых литералов ObjectiveC? (yes, I copy-pasted my comment from there into the beginning of this answer).

* Обратите внимание, что вопреки тому, что вы говорите в своем вопросе, этоactual, актуальный, время выполнения.

5

что я правильно понимаю ваш вопрос, поэтому я отвечу соответственно ...

Я настоятельно рекомендую документы вБиблиотека разработчиков Apple, Вот пара основных руководств, чтобы вы начали:

Концепции в программировании Objective-C

Программирование с Objective-C

Руководство по основам какао

Программирование iOS-приложений

Документы, представленные там, являются точным источником для передовых методов Objective-C и Какао и стандартов кодирования. Существует множество других документов по множеству тем, поэтому обязательно посетите этот веб-сайт.

Вы также спросили о том, как узнать, какие методы доступны для объектов. Чтобы узнать это, вы можете проверить ссылки на классы.

Например:

Ссылка на класс NSObject

Разница между руководствами и ссылками на классы заключается в том, что руководства больше касаются концепций, лежащих в основе кода, тогда как ссылки на классы представляют собой список методов и свойств, доступных для класса.

Надеюсь, это помогло.

1

включая синтаксис и т. Д. (См. Ссылку)

Я только сейчас, где вы были 3 года назад (в соответствии с датой в вашем вопросе): я начинаю проникать в Objective-C, и мне также странно, что, похоже, нет справочного руководства, где Я мог бы, например, найти точное значение и определение синтаксиса, ключевых слов и т. Д.

Я обнаружил, что по крайней мере некоторые из них можно найти в документе, касающемся какао (Основные компетенции какао). Ссылка, например, переходит к определению ключевого слова & quot; @ property & quot ;.

В моем POV это относится не только конкретно к Какао, но и вообще определяет расширение языка Objective-C языка C. Поэтому я не искал бы его в документах с пометкой «Какао».

Похожие вопросы