Rumah  >  Soal Jawab  >  teks badan

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

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

PHP中文网PHP中文网2739 hari yang lalu586

membalas semua(4)saya akan balas

  • ringa_lee

    ringa_lee2017-04-21 11:20:14

    2.0
    2.0 menambah GC

    balas
    0
  • 伊谢尔伦

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

    Adakah anda sebenarnya sedang mencari artikel di sini? "Kisah Di Sebalik Rangkaian Alat Kompilasi Mac OS X (8) LLVM oleh Tiga Pelajar Baik Chris Lattner"

    balas
    0
  • 阿神

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

    Daripada iOS 5. Xcode 4.2.

    balas
    0
  • 阿神

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

    Setakat ini pembangun Objective-C boleh mempunyai beberapa kaedah mengurus memori, yang paling biasa ialah [object dealloc].

    MRC: Setiap kali [object retain] dirujuk, kiraan rujukan akan menjadi +1 dan [object release] akan digunakan untuk mengelakkan pelepasan tidak sengaja dan penunjuk liar.

    GC: Ini hanya disokong oleh Cocoa. NSGarbageCollector boleh melaksanakan pengumpulan sampah automatik yang serupa dengan Java Kelemahannya ialah ia menjejaskan prestasi, jadi Cocoa Touch tidak menyediakan fungsi ini.

    ARC: Ini ialah ciri baharu (sebenarnya bukan pengkompil lalai baharu Xcode, Apple LLVM, menggantikan LLVM-GCC sebelumnya dan menggunakan Clang sebagai bahagian hadapan Ia akan dianalisis sebelum ini kompilasi, dan penganalisis akan melengkapkannya di mana pengekalan dan pelepasan perlu ditambah. ARC boleh menjaga sejumlah besar operasi pengiraan rujukan manual dan mengelakkan banyak kesilapan. Selepas menggunakan ARC, adalah dilarang untuk menggunakan kaedah mengekalkan dan melepaskan secara manual Anda boleh membebankan dealloc tetapi hanya melaksanakan keluaran tersuai.

    Saya telah meneliti perkara ini baru-baru ini. Sila betulkan saya jika terdapat sebarang kesilapan

    balas
    0
  • Batalbalas