2011-11-02 1 views
0

iOS5 SDK에서 컴파일러는 ARC (메모리 관리)를 담당합니다. iOS 4.2를 사용하여 내 앱을 만들고 모든 releses를 수동으로 실행했다고 가정합니다. 자, iOS 5에서 해당 응용 프로그램을 실행하려고하면 컴파일러가 자체 메모리 관리를 다시 삽입하려고합니까? 이 경우 추락하지 않을까요?iOS 5의 자동 참조 카운팅 (ARC)

+0

iOS 5.0에서 실행 해 보셨습니까? 그때 무슨 일이 일어 났습니까? – Krishnabhadra

+0

@Krishnabhadra xcode3.2.5/iOS4.2에 코드를 작성한 다음 xcode4/iOS5.0을 사용하여 실행하려고 시도했지만 충돌이 발생했습니다. – anshul

답변

1

iOS 5.0 SDK를 사용하여 새 프로젝트를 시작하면 ARC를 켜거나 끌 수있는 옵션이 제공됩니다. iOS 5.0 이전 버전을 사용하여 설계된 기존 프로젝트를 실행하는 경우 ARC가 자동으로 비활성화됩니다. Apple의 documentation이 ARC로 전환 중임

3

아니요. ARC를 사용해야합니다. (편집> 리 팩터> ARC로 변환). ARC를 사용하지 않으면 컴파일러는 메모리 관리 코드를 삽입하지 않습니다.

1

ARC가 호출되면 -retain, -release 및 -dealloc이 허용되지 않으므로 설명하는 이중 릴리스 상황이 발생할 수 없습니다. 관련 질문 아래 답변보기 : Under automatic reference counting, why are retain, release, and dealloc not allowed?

+0

질문에 대답하지 않습니다. 그렇습니까? – dasdom

+0

대기, realloc 또는 dealloc을 의미합니까? 주요 차이점은 ... –

+0

오타 수정 : "-realloc"을 "-dealloc"로 변경했습니다. 감사합니다. @ richard-j-ross-iii –