1、既然设置了ARC,为什么还需要@autoreleasepool,有什么好处?
池子做的是运行时延迟释放,ARC已经在编译时解决了手动管理的问题,那么就没必要使用@autoreleasepool,还占内存。
2、ARC频繁释放内存 和@autoreleasepool一起释放 感觉还是前者 要好些,
这不是像数据连接池一样可以共享资源。只是延迟释放内存(又不能共享内存)。
按着这个推论在ARC条件下,没必要使用@autoreleasepool。
我知道这种想法有问题,但是不知道是哪里,新手问题多,莫喷
ARC tidak meninggalkan
@autoreleasepool
, tetapi membantu anda memasukkanretain
/release
/autorelease
panggilan kod yang diperlukan semasa fasa penyusunan.Jadi, tidak seperti yang anda fikirkan, ARC masih tertunda keluaran dan masih bergantung pada
NSAutoreleasePool
Ia pada asasnya sama seperti memanggil fungsi tersebut secara manual dalam mod bukan ARC, ia hanyalah pengkompil akan terjamin.Rujukan:
Menggunakan @autoreleasepool adalah berguna.
Dalam keadaan biasa, pembolehubah yang anda buat akan dikeluarkan apabila ia melebihi skopnya.
Dan jika fungsi anda sangat panjang dan banyak pembolehubah perantaraan muncul semasa menjalankan fungsi anda, menduduki sejumlah besar memori, apakah yang perlu anda lakukan?
Gunakan @autoreleasepool.
Pembolehubah yang dibuat dalam @autoreleasepool akan dikeluarkan sekali apabila @autoreleasepool tamat. Malah, @autoreleasepool adalah bersamaan dengan lapisan skop.