ฉันได้เริ่มพัฒนาแอป iOS ตัวแรกของฉันด้วย Xcode 4.2 และกำหนดเป้าหมายเป็น iOS 5.0 ด้วยเทมเพลต "แอปพลิเคชันยูทิลิตี้" (ซึ่งมาพร้อมกับ FlipsideViewController)
ฉันอ่านว่าเนื่องจาก ARC เป็นคุณสมบัติเวลาคอมไพล์จึงควรเข้ากันได้กับ iOS 4 ด้วยดังนั้นฉันจึงพยายามกำหนดเป้าหมายแอปของฉันเป็น 4.3 และลองรวบรวม เมื่อทำเช่นนั้นฉันได้รับข้อผิดพลาดนี้:
FlipsideViewController.m: error: Automatic Reference Counting Issue: เป้าหมายการปรับใช้ปัจจุบันไม่รองรับการอ้างอิง __weak อัตโนมัติ
มันอ้างถึงบรรทัดนี้:
@synthesize delegate = _delegate;
ตัวแปรนั้นถูกประกาศเป็น:
@property (weak, nonatomic) IBOutlet id <FlipsideViewControllerDelegate> delegate;
ฉันเข้าใจว่า "การอ้างอิงที่ไม่เหมาะสม" ไม่ได้รับการสนับสนุนใน iOS 4 แต่ฉันไม่เข้าใจจริงๆว่าทำไมฉันถึงต้องการใช้การอ้างอิงที่อ่อนแอเพื่อเริ่มต้นและฉันไม่สามารถคิดได้ว่าฉันจะเขียนสิ่งต่าง ๆ ใหม่เพื่อหลีกเลี่ยงการใช้มันในขณะที่ ยังคงใช้ประโยชน์จาก ARC (ท้ายที่สุดมันควรจะทำงานกับ iOS 4 และ 5 ใช่มั้ย?)