2009-08-11 11 views

답변

5

예, 주어진 개체의 주소는 Objective-C에서 상수입니다. 개체는 항상 주소로 참조되므로 이는 매우 중요합니다. :-) (가비지 콜렉터가 모든 포인터를 업데이트하지만 아이폰과 Mac에서는 가비지 콜렉션이 지원되지 않습니다. Obj-C 가비지 컬렉터는 문서화되어 있지 않습니다. Garbage Collection Programming Guide: Architecture, How the Garbage 콜렉터 작품) 나는 Ahruman 그 이상으로 만드는 객체 주소가 영구적으로 보장되는 아주 엄격한 보증 보이지 않아요 코코아 쓰레기 수거 프로그래밍 가이드에서

0

self을 의미하면 예, 개체 수명 동안 원래대로 유지됩니다. 내 의견은 아래로있는 문제에 대해 심층적으로 다룬 사라하지 않았지만

+0

음, 나는 그 대상을 의미합니다. 그것은 다른 클래스에 의해 참조 될 수 있습니다. 하지만 내면적으로 모든 것이 자아로 끝나는 것 같아요. –

-1

: 객체의

메모리 주소는 고정되지 않을 수 있습니다.

예를 들어 Java에서 객체는 포인터가 아니라 참조를 가지지 않으므로 JVM은 객체를 메모리 관리 체계의 일부로 이동할 수 있으며 이동 된 객체에 따라 참조 값을 변경할 수 있습니다. 또한 JVM의 가비지 수집 절차의 일부로 객체를 이동할 수도 있습니다.

내가 공식 문서를 읽지는 않았지만 동일한 경우에 대비하여 여기에 게시 할 수 있습니다.

.Net에서 동일한 프로세스가 일어날 수 있습니다.

+0

일반적으로 흥미롭지 만 iPhone 및 코코아 터치 태그가 붙은 질문에는별로 관련이 없습니다. :-) –

-1

:. 개방형 시스템 대

http://developer.apple.com/mac/library/documentation/Cocoa/Conceptual/GarbageCollection/Articles/gcArchitecture.html

닫힘 섹션 :

'[I n 열린 가비지 수집 시스템, 콜렉터]는 메모리 블록을 재 할당 및 복사하고 각각의 모든 참조 포인터를 업데이트하여 새 주소를 반영합니다. [...] 코코아의 가비지 컬렉터는 "외부"참조를 쉽게 추적하고 필요한 부분에서만 "보수적 인"방식으로 스캔 된 블록의 포인터가 어디에 있는지 정확히 알면 "닫힌"상태와 "열린 상태"사이의 균형을 유지합니다. . '

코코아 런타임의 일반적인 "동적"특성으로 인해, 가비지 수집 프로그램이 아닌 경우에도 Apple 설명서에서 주제에 대해 실제로 명시 적으로 논의하고 싶습니다.

site:developer.apple.com cocoa "object's memory address" OR "memory address of an object" guaranteed OR permanent 

을 그리고있다 : - 나는 developer.apple.com의 전체를 검색에서 "개체의 메모리 주소를 변경하지 않는 보장"의 라인을 따라 어떤 내용을 찾을 수없는 Google에 시도 그 무서운 주제의 ... 멀티 스레딩 (아아아).

관련 문제