Многие классы Cocoa / Cocoa Touch имеют префикс NS. Что это значит?
Что префикс NS означает?
Исходный код для рамки какао пришел из NeXTstep появился фонд библиотек и AppKit (эти названия до сих пор используются рамками Apple, какао), и инженеры выбрали благодаря NeXTstep префикса их символам с NS.
Поскольку Objective-C является расширением C и, следовательно, не имеет пространства имен, как и в C ++, символы должны начинаться с уникальным префиксом, так что они не сталкиваются. Это особенно важно для символов, определенных в рамках.
Если вы пишете приложение, таким образом, что ваш код только вероятно , когда - либо использовать свои символы, вам не придется беспокоиться об этом. Но если вы пишете платформу или библиотеку , для использования других, вы должны также префикс для ваших символов с уникальным префиксом. CocoaDev имеет страницу , где многие разработчики в сообществе какао перечислили свои «выбранные» префиксы. Вы также можете найти это обсуждение SO полезно.
Это от NeXTSTEP наследия.
N Ext S ТЭП или N eXTSTEP / S ип в зависимости от того, кто вы спрашиваете.
ВС была довольно большие инвестиции в OpenStep на некоторое время. Перед ВС вошел в картину большинство вещей в фонде, даже если он не был известен в качестве основы тогда, был приставкой NX , для N е X T, а иногда непосредственно перед ВС вошла картина все была переименована в NS . S , скорее всего , не стоять на солнце тогда , но после того, как ВС вышли в общем консенсусе в том , что он стоял на солнце , чтобы почтить их участие.
Я на самом деле была ссылка на это, но я не могу найти его прямо сейчас. Я буду обновлять этот пост, если / когда я нахожу это снова.
Это NextStep (= NS) наследие. NeXT была компьютерная компания, что Стив Джобс формируется после того, как он покинул Apple, в 1985 году, и NextStep было это операционная система (на базе UNIX) вместе с языком Obj-C и время выполнения. Вместе с его библиотеки и инструменты, NextStep позже был переименован OpenStep (который был также название на API, что NeXT, разработанные совместно с Sun), который, в свою очередь, позже стал какао.
Эти разные названия, на самом деле довольно запутанным (тем более, что некоторые из имен отличается только, в котором символы в верхнем или нижнем регистре ..), попробуйте это для объяснения:
Из документации для разработчиков от Apple:
Историческая справка: Если вы задаетесь вопросом, почему так много классов вы столкнулись имеют префикс NS, это из-за прошлой истории какао и Cocoa Touch. Какао начал жизнь в собранных рамках, используемых для создания приложений для операционной системы с помощью NeXTStep. Когда Apple купил NeXT в 1996 году, большая часть NeXTStep была включена в OS X, в том числе существующих имен классов. Касание Какао было представлено как эквивалент IOS, Какао; некоторые классы доступны как какао и Cocoa Touch, хотя есть также большое количество классов, уникальных для каждой платформы. Двухбуквенные префиксы как NS и UI (для элементов интерфейса пользователя на IOS) зарезервированы для использования Apple.
Источник: Программирование с помощью Objective-C
(Курсив)
Классы Какао начинаются с аббревиатурой «NS» (стоя либо для создания NeXT-Sun в OpenStep , или для оригинального патентованного срока рамках OpenStep, NeXTSTEP ): NSString, NSArray и т.д.
Kit Foundation , или чаще просто Foundation , впервые появился в OpenStep . В Mac OS X, она основана на ядре Foundation. Фонд является родовым объектно-ориентированная библиотека , обеспечивающая строковое значение и манипуляции, контейнеры и итерацию, распределенные вычислительные, запускать циклы, и другие функции, которые непосредственно не связаны с графическим пользовательским интерфейсом. Приставка «NS» , используется для всех классов и констант в рамках, исходит из OPENSTEP наследия Какао, который был разработан совместно NeXT и Sun .
Когда NeXT были определения API благодаря NeXTstep (в отличие от операционной системы NEXTSTEP), они использовали префикс NX, как в NXConstantString. Когда они пишут спецификации OpenStep с Солнцем (не следует путать с операционной системой OPENSTEP) они использовали префикс NS, как в NSObject.
Билл Бамгарнер ака @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».
В основном 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.
Это из наследия NeXTSTEP
Следующий шаг. Это пережиток, когда Objective-C был создан NeXT писать NeXTStep (позже OS X) и все связанное с ним приложение и т.д. Они представляют собой элементы, которые не являются частью исходного C основополагающего, например, нет «строки» элемент C, так что в Objective-C, это дополнительный элемент фундамента «NSString».













