ฉันกำลังดำเนินการเพิ่มข้อมูลหลักลงในแอป iPad ของฉัน ขั้นตอนทั่วไปของฉันคือการทดสอบโค้ดโดยใส่ไว้ในตัวแทนแอป เมื่อฉันพอใจที่ได้แยกวิเคราะห์โค้ดอย่างถูกต้องแล้ว ฉันจะย้ายรหัสไปยังวิธีที่เหมาะสมในที่อื่นในแอป จนถึงตอนนี้สิ่งนี้ได้ผลกับการเพิ่มวัตถุ แต่ฉันมีปัญหาในการลบวัตถุ ฉันสามารถลบพวกมันออกจากตัวแทนของแอพได้โดยการเลือกพวกมันแล้วลบทิ้ง และตอนนี้ฉันกำลังลบมันทั้งหมดเมื่อแอพเริ่มทำงานเพียงเพื่อรักษาฐานข้อมูลให้สะอาดจนกว่าโค้ดข้อมูลหลักจะทำงานได้
ขั้นตอนการทำงานของฉันเพียงพอแล้ว ปัญหาที่ฉันพบตอนนี้คือการลบวัตถุออกจากจุดที่เหมาะสม มาดูกันว่าฉันสามารถอธิบายการตั้งค่าของฉันโดยย่อได้หรือไม่
ฉันมีสองชั้น ให้ฉันเรียกพวกเขาว่า Car
และ Tire
เพื่อประโยชน์ในการสนทนานี้ ฉันไม่รู้ว่าแบบแผนคืออะไร ดังนั้นฉันจึงคิดขึ้นมาเอง นั่นคือการเพิ่ม C_
ที่จุดเริ่มต้นของชื่อสำหรับออบเจ็กต์ Core Data ที่เกี่ยวข้องเพื่อจัดเก็บออบเจ็กต์ที่เกี่ยวข้องกับออบเจ็กต์เหล่านี้ ฉันมีคลาสเพิ่มเติมอีกสองคลาส C_Car
และ C_Tire
รถแต่ละคันสามารถมียางได้หลายเส้น ดังนั้น Car
จึงมีคุณสมบัติ tires
ซึ่งเท่ากับ NSSet
ของ Tire *
นอกจากนี้ Car
มีคุณสมบัติที่เรียกว่า CarCD
ประเภท C_Car *
และ Tire
มีคุณสมบัติที่เรียกว่า TireCD
ประเภท C_Tire *
เพื่อให้แต่ละออบเจ็กต์สามารถติดตามออบเจ็กต์ข้อมูลหลักที่เกี่ยวข้องได้ (CD ใช้สำหรับข้อมูลหลัก)
Xcode สร้างวิธีการที่สะดวกสบายในการเพิ่มหรือลบวัตถุ หนึ่งในนั้นคือวิธีการเติมยางให้กับรถยนต์ ฉันใช้สิ่งนั้นดังนี้:
tire.tireCD = tireCD; //tire is an object of type Tire *, and tireCD is an object of type C_Tire *.
[self.carCD addTireObject:tireCD];//self.carCD is a property in my view controller of type CarCD *, and tireCD is a local object of type TireCD *.
นอกจากนี้ยังมีวิธีที่สะดวกในการถอดยางออกจากรถ - (void)removeTireObject:(C_Tire *)value;
ฉันคิดว่าทุกที่ในตัวควบคุมมุมมองของฉันที่ฉันมี:
[tireObject removeFromSuperview];//tireObject is a (Tire *) object.
ฉันจะเปลี่ยนสิ่งนั้นเป็น:
[carObject removeTireObject:tireObject.tireCD];
[tireObject removeFromSuperview];
บรรทัดแรกควรลบวัตถุออกจาก NSSet
บนวัตถุข้อมูลหลัก บรรทัดที่สองจะลบวัตถุออกจากวัตถุรถยนต์ที่ใช้ในแอพ
ปัญหาคือ ฉันไม่เห็น SQL ใด ๆ ที่ถูกสร้างขึ้นในหน้าต่างดีบักเกอร์เมื่อมีการเรียกใช้โค้ดนี้ ฉันพลาดอะไรไปรึเปล่า?
นอกจากนี้ หากคุณต้องการแสดงความคิดเห็นเกี่ยวกับแบบแผนการตั้งชื่อ ตอนนี้ก็ถึงเวลาที่ฉันจะยอมรับสิ่งที่เป็นแบบแผน
deleteObject:tire
จะถอดยางออกจากวัตถุของรถโดยอัตโนมัติ หากตั้งค่ากฎการลบข้อมูลหลักเป็น Nullify) - person Martin R   schedule 29.06.2013[carObject removeTireObject:tireObject.tireCD];
ได้ - person Victor Engel   schedule 29.06.2013