문제

나는 Objective-C와 Cocoa에 발을 젖게하고 있습니다 (아마 늦었지만 어딘가에서 시작해야합니다). 그리고 나는 모든 물체가 힙에서 할당 된 것을 알았습니다.

이것이 객관적인 C의 표준 인 이유가 있습니까? 나는 어디에서나 보았다 (그리고 예, stackoverflow에서도) 그러나 "그것이 어떻게되는지"를 제외하고는 명백한 이유를 찾을 수 없었다. Objective-C가 OO 기능을 갖춘 C의 엄격한 슈퍼 세트로 간주되기 때문에 특히 열심입니다.

내가 기사를 놓친 경우 인간 간 또는이 주제에 대한 실수로 stackoverflow에 대한 게시물은 우아한 종료를 시작하십시오. :)

도움이 되었습니까?

해결책

나는 이것이 Smalltalk 유산에 빚진 것 같습니다.

또한 스택-합금 객체는 C ++의 특이성이라고 말할 수 있습니다. 다른 언어는 거의하지 않으며 대부분 컴파일러의 저수준 최적화로서 대부분. C ++에서는 언급 된 목표 중 하나가 바로 그거죠 평범한 C처럼 성능

왜 이것이 Objective-C가 C의 슈퍼 세트라는 사실과 충돌한다고 생각합니까? 결국, 일반 C는 스택에 물체를 할당하거나 어디서나 할당 할 수 없습니다. structs, otoh는 c와 대물 틱-모두에서 스택에 허용됩니다.

다른 팁

나는 당신의 질문에 정확히 대답하지는 않지만, 당신이 OBJ-C의 런타임을 이해하고 있기 때문에 여기에 있습니다. nszones를 사용하여 물체를보다 효율적으로 할당 할 수 있습니다. 스택에 있지는 않지만 적어도 일부 조각화 및 성능 문제를 피할 수 있습니다.링크 텍스트

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top