Что префикс NS означает?

голоса
501

Многие классы Cocoa / Cocoa Touch имеют префикс NS. Что это значит?

Задан 23/01/2009 в 18:22
источник пользователем
На других языках...                            


11 ответов

голоса
736

Исходный код для рамки какао пришел из NeXTstep появился фонд библиотек и AppKit (эти названия до сих пор используются рамками Apple, какао), и инженеры выбрали благодаря NeXTstep префикса их символам с NS.

Поскольку Objective-C является расширением C и, следовательно, не имеет пространства имен, как и в C ++, символы должны начинаться с уникальным префиксом, так что они не сталкиваются. Это особенно важно для символов, определенных в рамках.

Если вы пишете приложение, таким образом, что ваш код только вероятно , когда - либо использовать свои символы, вам не придется беспокоиться об этом. Но если вы пишете платформу или библиотеку , для использования других, вы должны также префикс для ваших символов с уникальным префиксом. CocoaDev имеет страницу , где многие разработчики в сообществе какао перечислили свои «выбранные» префиксы. Вы также можете найти это обсуждение SO полезно.

Ответил 23/01/2009 в 18:52
источник пользователем

голоса
390

Это от NeXTSTEP наследия.

Ответил 23/01/2009 в 18:24
источник пользователем

голоса
140

N Ext S ТЭП или N eXTSTEP / S ип в зависимости от того, кто вы спрашиваете.

ВС была довольно большие инвестиции в OpenStep на некоторое время. Перед ВС вошел в картину большинство вещей в фонде, даже если он не был известен в качестве основы тогда, был приставкой NX , для N е X T, а иногда непосредственно перед ВС вошла картина все была переименована в NS . S , скорее всего , не стоять на солнце тогда , но после того, как ВС вышли в общем консенсусе в том , что он стоял на солнце , чтобы почтить их участие.

Я на самом деле была ссылка на это, но я не могу найти его прямо сейчас. Я буду обновлять этот пост, если / когда я нахожу это снова.

Ответил 23/01/2009 в 19:03
источник пользователем

голоса
50

Это NextStep (= NS) наследие. NeXT была компьютерная компания, что Стив Джобс формируется после того, как он покинул Apple, в 1985 году, и NextStep было это операционная система (на базе UNIX) вместе с языком Obj-C и время выполнения. Вместе с его библиотеки и инструменты, NextStep позже был переименован OpenStep (который был также название на API, что NeXT, разработанные совместно с Sun), который, в свою очередь, позже стал какао.

Эти разные названия, на самом деле довольно запутанным (тем более, что некоторые из имен отличается только, в котором символы в верхнем или нижнем регистре ..), попробуйте это для объяснения:

TheMerger OpenstepConfusion

Ответил 23/01/2009 в 19:01
источник пользователем

голоса
38

Из документации для разработчиков от Apple:

Историческая справка: Если вы задаетесь вопросом, почему так много классов вы столкнулись имеют префикс NS, это из-за прошлой истории какао и Cocoa Touch. Какао начал жизнь в собранных рамках, используемых для создания приложений для операционной системы с помощью NeXTStep. Когда Apple купил NeXT в 1996 году, большая часть NeXTStep была включена в OS X, в том числе существующих имен классов. Касание Какао было представлено как эквивалент IOS, Какао; некоторые классы доступны как какао и Cocoa Touch, хотя есть также большое количество классов, уникальных для каждой платформы. Двухбуквенные префиксы как NS и UI (для элементов интерфейса пользователя на IOS) зарезервированы для использования Apple.

Источник: Программирование с помощью Objective-C

Ответил 19/03/2013 в 05:53
источник пользователем

голоса
21

Из Cocoa_ (API) Википедия :

(Курсив)

Классы Какао начинаются с аббревиатурой «NS» (стоя либо для создания NeXT-Sun в OpenStep , или для оригинального патентованного срока рамках OpenStep, NeXTSTEP ): NSString, NSArray и т.д.

Kit Foundation , или чаще просто Foundation , впервые появился в OpenStep . В Mac OS X, она основана на ядре Foundation. Фонд является родовым объектно-ориентированная библиотека , обеспечивающая строковое значение и манипуляции, контейнеры и итерацию, распределенные вычислительные, запускать циклы, и другие функции, которые непосредственно не связаны с графическим пользовательским интерфейсом. Приставка «NS» , используется для всех классов и констант в рамках, исходит из OPENSTEP наследия Какао, который был разработан совместно NeXT и Sun .

Ответил 27/10/2011 в 19:08
источник пользователем

голоса
10

Когда NeXT были определения API благодаря NeXTstep (в отличие от операционной системы NEXTSTEP), они использовали префикс NX, как в NXConstantString. Когда они пишут спецификации OpenStep с Солнцем (не следует путать с операционной системой OPENSTEP) они использовали префикс NS, как в NSObject.

Ответил 24/01/2009 в 03:32
источник пользователем

голоса
6

Билл Бамгарнер ака @bbum, который должен знать , размещенном на список рассылки CocoaBuilder в 2005 году :

ВС вошел в картину немного после префикса NS пришел в игру. Приставка NS возникла в общественных API, при переходе от NeXTSTEP 3.0 до NeXTSTEP 4.0 (также известный как OpenStep). До 4,0, несколько символов используется префикс NX, но большинство классов, обеспечиваемые системными библиотеками не приставкой вообще - список, Hashtable, Вид и т.д. ...

Кажется , что все согласны с тем , что префикс NX (для NeXT) использовалась до 1993/1994, и документы компании Apple говорят :

Официальный OpenStep API, опубликованный в сентябре 1994 года, был первым расколоть API между Фондом и комплектом приложений и первым использовать префикс «NS».

Ответил 05/09/2015 в 04:04
источник пользователем

голоса
5

В основном NS происходит от N внутр S ТЭП, оригинальной операционной системы , которая стала Mac OS X , когда компания Apple приобрела Next.

Я хочу объяснить, что-то еще, и вот почему именно это необходимо.

В C ++ есть пространство имен и почти все , что идет в станд

Вот почему вы StD :: строка.

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

Objective-C является подмножеством С, но она не включает в себя пространство имен и по той же причине, прежде всех классов системных preffixed с NS или каким-либо другим странным preffix.

Эта вещь такая же , как все DirectX классы preffixed с D3D и OpenGL , как все классы preffixed с гл .

Это означает , что вы не должны использовать NS назвать свои собственные классы и когда вы видите NS , CA в Core Animation или CG в Core Graphics , вы понимаете , что это призыв к каркасу системы.

Быстрые изменения этой конвенция, поскольку Swift поддерживает пространства имен и отображает его основные тип, как String, к эквивалентам NS.

Ответил 08/01/2017 в 12:27
источник пользователем

голоса
1

Это из наследия NeXTSTEP

Ответил 09/06/2019 в 12:30
источник пользователем

голоса
1

Следующий шаг. Это пережиток, когда Objective-C был создан NeXT писать NeXTStep (позже OS X) и все связанное с ним приложение и т.д. Они представляют собой элементы, которые не являются частью исходного C основополагающего, например, нет «строки» элемент C, так что в Objective-C, это дополнительный элемент фундамента «NSString».

Ответил 21/06/2017 в 06:32
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more