IT story

NS 접두사는 무엇을 의미합니까?

hot-time 2020. 2. 9. 19:25
반응형

NS 접두사는 무엇을 의미합니까?


Cocoa / Cocoa Touch의 많은 클래스에는 NS 접두사가 있습니다. 무슨 뜻인가요?


그것은 NeXTSTEP 유산 에서 온 것 입니다.


Cocoa 프레임 워크의 원래 코드는 NeXTSTEP 라이브러리 Foundation 및 AppKit (이 이름은 여전히 ​​Apple의 Cocoa 프레임 워크에서 사용됨) 에서 가져 왔으며 NextStep 엔지니어는 심볼 앞에 NS를 추가하기로했습니다.

Objective-C는 C의 확장이므로 C ++에서와 같이 네임 스페이스가 없으므로 기호 앞에 고유 한 접두사가 붙어서 충돌하지 않도록해야합니다. 이것은 프레임 워크에 정의 된 심볼에 특히 중요합니다.

코드에서 기호 만 사용하도록 응용 프로그램을 작성하는 경우 걱정할 필요가 없습니다. 그러나 다른 사람이 사용할 수 있도록 프레임 워크 또는 라이브러리를 작성하는 경우 기호 앞에 고유 접두사를 붙여야합니다. CocoaDev에는 Cocoa 커뮤니티의 많은 개발자들이 "선택한"접두사를 나열한 페이지 가 있습니다. 이 SO 토론이 도움 될 수도 있습니다.


요청한 사람에 따라 N eXT S TEP 또는 N eXTSTEP / S un이 있습니다.

썬은 한동안 OpenStep에 상당히 많은 투자를했습니다. 썬은이 당시 기초로 알려져 있지에도 불구하고, 재단에서 사진 가장 일을 입력하기 전에, 접두사 된 NX를 들어, N E X T, 썬은 사진의 모든 것이로 변경되었습니다 입력 언젠가 직전 NS . S는 대부분 다음 일을 위해 서 있지만, 일이 일반적인 합의 밟은 후 자신의 참여를 존중하는 일에 대해 서 것이었다하지 않았다.

실제로 이것에 대한 참조가 있었지만 지금은 찾을 수 없습니다. 게시물을 다시 찾은 경우 업데이트합니다.


NextStep (= NS) 유산입니다. NeXT는 Steve Jobs가 1985 년에 Apple을 종료 한 후 설립 한 컴퓨터 회사였으며 NextStep은 Obj-C 언어 및 런타임과 함께 운영 체제 (UNIX 기반)였습니다. NextStep은 라이브러리 및 도구와 함께 나중에 OpenStep (NexT가 Sun과 함께 개발 한 API의 이름이기도 함)으로 이름이 바뀌었고 나중에 코코아가되었습니다.

이러한 다른 이름은 실제로 매우 혼동됩니다 (특히 일부 이름은 문자가 대문자 또는 소문자 만 다르므로). 설명을 위해 다음을 시도하십시오.

The Merger OpenstepConfusion


Apple 개발자 문서에서 :

역사적 메모 : 왜 그렇게 많은 클래스에 NS 접두사가 있는지 궁금하다면, 과거의 Cocoa와 Cocoa Touch의 역사 때문입니다. Cocoa는 NeXTStep 운영 체제 용 앱을 구축하는 데 사용되는 수집 된 프레임 워크로 시작되었습니다. Apple이 1996 년 NeXT를 다시 구입했을 때 기존 클래스 이름을 포함하여 NeXTStep의 많은 부분이 OS X에 통합되었습니다. Cocoa Touch는 iOS와 동등한 Cocoa로 소개되었습니다. 일부 클래스는 Cocoa와 Cocoa Touch 모두에서 사용할 수 있지만 각 플랫폼마다 고유 한 클래스가 많이 있습니다. NS 및 UI (iOS의 사용자 인터페이스 요소 용)와 같은 두 글자 접두사는 Apple에서 사용하도록 예약되어 있습니다.

출처 : Objective-C를 사용한 프로그래밍


에서 Cocoa_ (API) 위키 백과 :

(강조 추가)

Cocoa 클래스는 약어 "NS"로 시작 합니다 ( OpenXNeXT-Sun 작성 또는 OpenStep 프레임 워크, NeXTSTEP 의 원래 독점 용어 ) : NSString, NSArray 등

Foundation Kit 또는보다 일반적으로 FoundationOpenStep 에서 처음 등장했습니다 . Mac OS X에서는 Core Foundation을 기반으로합니다. Foundation은 문자열 및 값 조작, 컨테이너 및 반복, 분산 컴퓨팅, 실행 루프 및 그래픽 사용자 인터페이스에 직접 연결되지 않은 기타 기능을 제공하는 일반적인 객체 지향 라이브러리입니다. 프레임 워크의 모든 클래스와 상수에 사용되는 "NS"접두사 NeXTSun 이 공동으로 개발 한 Cocoa의 OPENSTEP 유산에서 온 것 입니다.


NeXT가 NEXTSTEP 운영 체제와 달리 NextStep API를 정의 할 때 NXConstantString에서와 같이 접두사 NX를 사용했습니다. OPENSTEP 운영 체제와 혼동하지 말고 Sun에서 OpenStep 사양을 작성할 때 NSObject에서와 같이 NS 접두사를 사용했습니다.


기본적으로 NS는 에서 온다 N의 내선 S TEP, 애플이 다음을 인수 할 때 맥 OS X가 된 원래 운영 체제.

나는 다른 것을 설명하고 싶기 때문에 이것이 정확히 필요한 이유입니다.

C ++에는 네임 스페이스가 있으며 거의 ​​모든 것이 std에 들어갑니다.

이것이 std :: string을 갖는 이유입니다.

네임 스페이스는 사용하기 때문에 실수하기 어렵고 시스템과 충돌하지 않고 자신 만의 클래스 문자열을 작성할 수 있습니다.

Objective-C는 C의 상위 집합이지만 네임 스페이스를 포함하지 않으며 같은 이유로 모든 시스템 클래스에는 NS 또는 다른 이상한 접두사가 붙습니다.

이것은 모든 DirectX 클래스에 D3D 접두사가 붙는 방식과 모든 OpenGL 클래스에 gl 이 접두사가 붙는 방식과 동일 합니다.

즉, NS사용 하여 클래스 이름을 지정 하지 않아야 하며 Core Animation에서 NS , CA 또는 Core Graphics에서 CG 를 볼 때 이것이 시스템 프레임 워크에 대한 호출임을 이해합니다.

Swift는 네임 스페이스를 지원하고 String과 같은 핵심 유형을 NS와 동등한 유형으로 매핑하므로 Swift는이 규칙을 변경합니다.


Bill Bumgarner (@bbum) 는 2005 년 CocoaBuilder 메일 링리스트에 게시했습니다 .

NS 접두사가 시작된 후 Sun은 그림에 약간 들어갔다. NS 접두사는 NeXTSTEP 3.0에서 NeXTSTEP 4.0 (OpenStep이라고도 함)으로 이동하는 동안 공개 API에서 발생했습니다. 4.0 이전에는 소수의 기호가 NX 접두사를 사용했지만 시스템 라이브러리에서 제공하는 대부분의 클래스에는 목록, 해시 테이블, 뷰 등의 접두사가 전혀 없었습니다.

NX (NexT 용) 접두어는 1993/1994까지 사용되었으며 Apple의 문서는 다음 과 같이 말합니다 .

1994 년 9 월에 공개 된 공식 OpenStep API는 Foundation과 Application Kit간에 API를 분할 한 최초의 제품이며 "NS"접두어를 사용한 최초의 제품이었습니다.

참고 URL : https://stackoverflow.com/questions/473758/what-does-the-ns-prefix-mean



반응형