>  Q&A  >  본문

apple - objective-c从哪个版本开始就不用手动管理内存了?

下载了xcode5,写代码时对一个变量比如NSString *str = [[NSString alloc] init]类似这样的写法,都不用手动释放内存了么?([str release])。这个特性是从xcode哪个版本开始的?
还有,那这样是不是意味着xcode5就是像java那样的自动管理内存了呢?

PHP中文网PHP中文网2739일 전582

모든 응답(4)나는 대답할 것이다

  • ringa_lee

    ringa_lee2017-04-21 11:20:14

    2.0
    2.0에 GC 추가

    회신하다
    0
  • 伊谢尔伦

    伊谢尔伦2017-04-21 11:20:14

    실제로 여기서 기사를 찾고 계시나요? "세 명의 우수한 학생 Chris Lattner가 작성한 Mac OS X(8) LLVM 컴파일 툴 체인 비하인드 스토리"

    회신하다
    0
  • 阿神

    阿神2017-04-21 11:20:14

    iOS 5. Xcode 4.2.

    회신하다
    0
  • 阿神

    阿神2017-04-21 11:20:14

    지금까지 Objective-C 개발자는 여러 가지 메모리 관리 방법을 사용할 수 있는데, 가장 일반적인 방법은 [객체 할당 해제]입니다.

    MRC: [객체 유지]가 참조될 때마다 참조 횟수는 +1이 되며, 우발적인 해제 및 와일드 포인터를 방지하기 위해 [객체 해제]가 사용됩니다.

    GC: Cocoa에서만 지원됩니다. NSGarbageCollector는 Java와 유사한 자동 가비지 수집을 구현할 수 있습니다. 단점은 성능에 영향을 미치기 때문에 Cocoa Touch에서는 이 기능을 제공하지 않습니다.

    ARC: 이것은 새로운 기능입니다(실제로는 새로운 것이 아닙니다). Xcode의 새로운 기본 컴파일러인 Apple LLVM은 이전 LLVM-GCC를 대체하고 Clang을 정적 분석기와 함께 제공되는 프런트 엔드로 사용합니다. 컴파일하면 분석기가 보유 및 릴리스를 추가해야 하는 위치에서 이를 완료합니다. ARC는 수많은 수동 참조 계산 작업을 인계받아 많은 실수를 방지할 수 있습니다. ARC를 사용한 후에는 보유 및 해제 방법을 수동으로 사용하는 것이 금지됩니다. 할당 해제를 오버로드할 수 있지만 사용자 정의된 릴리스만 구현할 수 있습니다.

    최근 이것저것 알아보고 있는데 혹시 틀린 부분이 있으면 정정해주세요

    회신하다
    0
  • 취소회신하다