В основном NS происходит от N ext S TEP, оригинальной операционной системы, которая стала Mac OS X, когда Apple приобрела Next.
Я хочу объяснить что-то еще, и именно поэтому оно и нужно.
В C ++ есть пространства имен и почти все входит в std
Вот почему у вас есть std :: string.
Используются пространства имен, поэтому вам сложнее ошибиться, и вы можете написать собственную строку класса, не конфликтуя с системной.
Objective-C является надмножеством C, но он не включает пространства имен и по той же причине выше всех системных классов имеет префикс NS или какой-то другой странный префикс.
Это то же самое, что все классы DirectX имеют префикс D3D и как все классы OpenGL имеют префикс gl .
Это означает, что вы не должны использовать NS для именования своих классов и когда вы видите NS , CA в Core Animation или CG в Core Graphics вы понимаете, что это вызов системной платформы.
Swift меняет это соглашение, потому что Swift поддерживает пространство имен и отображает основные типы, такие как String, в эквиваленты NS.