@class เทียบกับ #import
ฉันเข้าใจว่าควรใช้การประกาศไปข้างหน้าในเหตุการณ์ ClassA ต้องรวมส่วนหัว ClassB และ ClassB ต้องรวมส่วนหัว ClassA เพื่อหลีกเลี่ยงการรวมแบบวน ฉันยังเข้าใจด้วยว่า#importa เป็นวิธีที่ง่ายifndefเพื่อให้การรวมเกิดขึ้นเพียงครั้งเดียว คำถามของฉันคือ: เมื่อไหร่จะใช้#importและเมื่อไหร่จะใช้@class? บางครั้งถ้าฉันใช้การ@classประกาศฉันเห็นคำเตือนคอมไพเลอร์ทั่วไปเช่นต่อไปนี้: warning: receiver 'FooController' is a forward class and corresponding @interface may not exist. ชอบที่จะเข้าใจสิ่งนี้จริง ๆ เพียงแค่ลบการ@classประกาศไปข้างหน้าและทิ้ง#importคำเตือนที่คอมไพเลอร์ให้ฉัน