objective-c - NSAutoreleasePool和autoreleasepool的区别
ringa_lee
ringa_lee 2017-04-21 11:16:28
0
2
362

NSAutoreleasePool的官方解释
Important If you use Automatic Reference Counting (ARC), you cannot use autorelease pools directly. Instead, you use @autoreleasepool blocks instead. For example, in place of:

NSAutoreleasePool *pool = [[NSAutoreleasePool alloc] init;
// Code benefitting from a local autorelease pool.
[pool release];

you would write:

@autoreleasepool {
// Code benefitting from a local autorelease pool.
}

@autoreleasepool blocks are more efficient than using an instance of NSAutoreleasePool directly; you can also use them even if you do not use ARC.

xcode4.3引入ARC,release这块就有些变化,当你使用ARC,就必须将NSAutoreleasePool的地方换成 @autoreleasepool

http://marshal.easymorse.com/archives...

ringa_lee
ringa_lee

ringa_lee

membalas semua(2)
伊谢尔伦

Kedua-duanya mempunyai masa aksi yang berbeza. Kaedah penulisan objek AutoReleasePool bertindak pada masa jalan dan @autoreleasepool bertindak pada fasa kompilasi. Jika anda ingin mendayakan ARC, anda perlu memberitahu pengkompil untuk mendayakan pengurusan pengiraan rujukan automatik semasa fasa penyusunan dan tidak boleh menambahkannya secara dinamik semasa masa jalan.

小葫芦

Kini Apple mengesyorkan menggunakan @autoreleasepool{}, tidak kira sama ada ARC digunakan

blok @autoreleasepool lebih cekap daripada menggunakan contoh > anda juga boleh menggunakannya walaupun anda tidak menggunakan ARC http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSAutoreleasePool_Class/Reference/Reference.html

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan
Tentang kita Penafian Sitemap
Laman web PHP Cina:Latihan PHP dalam talian kebajikan awam,Bantu pelajar PHP berkembang dengan cepat!