programing

NS 프리픽스는 무엇을 의미합니까?

showcode 2023. 4. 15. 09:40
반응형

NS 프리픽스는 무엇을 의미합니까?

Cocoa/Cocoa Touch의 많은 클래스에는 NS 접두사가 있습니다.그것은 무엇을 뜻하나요?

코코아 프레임워크의 원래 코드는 NextSTEP 라이브러리 Foundation과 AppKit(이러한 이름들은 여전히 Apple의 코코아 프레임워크에서 사용됨)에서 유래했으며, NextStep 엔지니어는 기호 앞에 NS를 붙이는 것을 선택했습니다.

Objective-C는 C의 확장자이므로 C++와 같이 네임스페이스가 없기 때문에 심볼은 충돌하지 않도록 고유한 프레픽스를 붙여야 합니다.이는 프레임워크에 정의된 기호에서 특히 중요합니다.

만약 당신이 당신의 코드가 당신의 기호만을 사용할 수 있도록 응용 프로그램을 쓰고 있다면, 당신은 이것에 대해 걱정할 필요가 없습니다.그러나 다른 사용자가 사용하기 위해 프레임워크나 라이브러리를 작성하는 경우 기호 앞에 고유한 접두사를 붙여야 합니다.Coco Dev에는 코코아 커뮤니티의 많은 개발자들이 그들의 "선택" 접두어를 나열한 페이지가 있습니다.SO에 대한 설명도 도움이 될 수 있습니다.

NextSTEP의 유산입니다.

NexTSTEP 또는 NexTSTEP/Sun 중 하나를 선택합니다.

Sun은 한동안 OpenStep에 상당히 많은 투자를 했습니다.Sun이 참여하기 전에는 Foundation의 대부분에 NX가 붙었고, NeXT는 NX가 붙었고, Sun이 참여하기 직전에는 NS로 이름이 바뀌었습니다.당시 S는 쑨양을 지지하지 않았을 가능성이 높았지만 쑨양이 개입한 것을 기리기 위해 쑨양을 지지한다는 것이 일반적인 공감대였다.

사실 참고가 있었는데 지금 찾을 수가 없어요.게시물을 다시 찾으면 업데이트하겠습니다.

NextStep(= NS) 유산입니다.NeXT는 스티브 잡스가 1985년 애플을 그만둔 후 설립한 컴퓨터 회사였고, NextStep은 Obj-C 언어와 런타임과 함께 운영체제(UNIX 기반)였다.NextStep은 라이브러리 및 툴과 함께 나중에 OpenStep(NeXT가 Sun과 함께 개발한 API 상의 이름이기도 함)으로 이름이 바뀌었고, 나중에 코코아가 되었다.

이러한 다른 이름은 실제로 매우 혼란스럽습니다(특히 일부 이름은 대문자 또는 소문자만 다르므로). 설명을 위해 다음과 같이 시도해 보십시오.

Merger Openstep Confusion(병합)

Apple 개발자 문서:

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

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

기본적으로 NS는 Apple이 Next를 인수했을 때 Mac OS X가 된 원본 운영 체제인 NextSTEP에서 유래했습니다.

나는 다른 것을 설명하고 싶고 이것이 왜 그것이 필요한지에 대한 정확한 이유이다.

C++에는 네임스페이스가 있고 거의 모든 것이 표준으로 들어갑니다.

이것이 std:: 문자열이 있는 이유입니다.

네임스페이스가 사용되므로 실수하기 쉽고 시스템 문자열과 충돌하지 않고 자신의 클래스 문자열을 작성할 수 있습니다.

Objective-C는 C의 슈퍼셋이지만 네임스페이스를 포함하지 않으며, 같은 이유로 모든 시스템클래스에 NS 또는 기타 이상한 프레픽스가 붙습니다.

이는 모든 DirectX 클래스에 D3D가 프리픽스 되는 방법 및 모든 OpenGL 클래스에 gl이 프리픽스 되는 방법과 동일합니다.

즉, NS를 사용하여 클래스 이름을 지정해서는 안 되며 NS, Core Animation의 CA 또는 Core Graphics의 CG를 보면 이것이 시스템 프레임워크에 대한 호출임을 알 수 있습니다.

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

코코아_(API) Wikipedia에서:

(추가)

코코아 클래스는 "NS"라는 약자로 시작합니다(NeXT-Sun OpenStep 생성 또는 OpenStep 프레임워크의 원래 소유권 용어인 NeXTStep). NSString, NSArray 등.

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

NeXT가 NextStep API를 정의할 때(NEXTSTEP 운영체제가 아니라) NXConstantString과 같이 NX라는 접두사를 사용했습니다.OpenStep 사양을 Sun과 함께 작성할 때(OPENSTEP 운영 체제와 혼동하지 말 것) NSObject에서와 같이 NS 접두사를 사용했습니다.

Bill Bumgarner @bum은 2005년 CocoBuilder 메일링 리스트 다음과 같이 을 올렸습니다.

Sun은 NS 프리픽스가 적용된 지 얼마 지나지 않아 등장했습니다.NS 접두사는 NeXTSTEP 3.0에서 NeXTSTEP 4.0(OpenStep이라고도 함)으로 이동하는 동안 퍼블릭 API에서 발생했습니다.4.0 이전에는 소수의 기호가 NX 프리픽스를 사용했지만 시스템 라이브러리에서 제공되는 대부분의 클래스(리스트, 해시 테이블, 보기 등)는 프리픽스가 전혀 붙지 않았습니다.

NXT(NeXT의 경우)라는 접두어가 1993/1994년까지 사용되었다는 점에 모두가 동의하는 것으로 보이며, Apple의 문서에는 다음과 같이 기술되어 있습니다.

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

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

반응형