ในหน้า 17 ของงานนำเสนอ WWDC14 นี้มีข้อความว่า
การทำงานกับ Objective-C? ยังต้องจัดการ autoreleasepool พูลการปล่อยอัตโนมัติ
{/ * code * /}
นั่นหมายความว่าอย่างไร? หมายความว่าถ้าฐานรหัสของฉันไม่มีไฟล์ Objective-C autoreleasepool {}ก็ไม่จำเป็น?
ในคำตอบของคำถามที่เกี่ยวข้องมีตัวอย่างที่autoreleasepoolสามารถเป็นประโยชน์:
- (void)useALoadOfNumbers {
for (int j = 0; j < 10000; ++j) {
@autoreleasepool {
for (int i = 0; i < 10000; ++i) {
NSNumber *number = [NSNumber numberWithInt:(i+j)];
NSLog(@"number = %p", number);
}
}
}
}
หากโค้ดด้านบนได้รับการแปลเป็น Swift พร้อมกับautoreleasepoolหลุด Swift จะฉลาดพอที่จะรู้ว่าnumberควรปล่อยตัวแปรหลังจากตัวแรก}(เช่นเดียวกับภาษาอื่น ๆ ) หรือไม่


autoreleasepoolใน Swift ผมขยายตัวในคำถามของคุณและถามในฟอรั่มที่ dev