Подтвердить что ты не робот

Objective-C стандарт документа

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

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

Эта страница: http://clang.llvm.org/docs/ObjectiveCLiterals.html включает фрагмент формальной грамматики для Objective-C, но по иронии судьбы это в контексте описания что Кланг просто ушел и добавил сам по себе и что никто другой не поддерживает. Здесь есть еще одна грамматика: 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

4b9b3361

Ответ 1

К сожалению, для ObjC нет стандарта для С++ или C. Являясь основным пользователем и драйвером языка, их реализация компилятора (бит ObjC Clang) является стандартом de facto. Их старый документ (неработающая ссылка)" Язык программирования Objective-C был примерно таким же, как и вы, прозаическая версия, и она нигде не была близка к точности любого из этих стандартов других языков (и она, как правило, отстает от компилятора).

Он все еще может находиться где-то в Интернете, но он больше не обновляется. "Программирование с помощью Objective-C" представляется их предполагаемой заменой (но опять же, это не похоже на стандарт).

Относительно вашего комментария (только для ссылки 10k) при удаленном ответе Тима, Cocoa корневой класс NSObject, а его интерфейс документировано, но его источник недоступен. Обратите внимание, что NSObject protocol также является чрезвычайно важной частью функциональности объекта Cocoa. Apple runtime open-source, * и имеет корневой класс под названием Object, я предполагаю для демонстрации. Он не используется в программировании Cocoa.

Вы все знаете обо всем этом, конечно. Прямой ответ на ваш вопрос: "нет никого". Большая часть синтаксиса такая же, как и C, но, как указывает bbum: Авторитарное описание строковых литералов ObjectiveC? (да, я скопировал свой комментарий оттуда в начале этого ответа).


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

Ответ 2

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

Я настоятельно рекомендую документы в Apple Developer Library. Вот несколько основных руководств, которые помогут вам начать:

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

Программирование с помощью Objective-C

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

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

В документах есть окончательный источник для Objective-C и Cocoa лучших практик и стандартов кодирования. Есть много других документов по множеству тем, поэтому убедитесь, что вы выбрали этот веб-сайт.

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

Например:

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

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

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

Ответ 3

Найдено, по крайней мере, некоторые определения языка Objective-C, включая синтаксис и т.д. (см. ссылку)

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

Теперь я обнаружил, что, по крайней мере, некоторые из них можно найти в документе, который связан с cocoa (Cocoa Основные компетенции). Например, ссылка ссылается на определение ключевого слова "@property".

В моем POV это относится не только только к cocoa, но, как правило, определяет расширение языка Objective-C C. То почему я бы не искал его в документах, отмеченных "Cocoa".