ไม่บันทึกออบเจ็กต์ Core Data ทั้งหมด

ฉันกำลังพัฒนาแอพ iPhone ซึ่งดาวน์โหลดข้อมูลจากอินเทอร์เน็ตและสร้างออบเจ็กต์จากข้อมูลนั้น สามารถสร้างวัตถุประเภทเดียวกันบนอุปกรณ์ได้ ไม่ควรบันทึกออบเจ็กต์จากเว็บในฐานข้อมูล Core Data แต่ควรบันทึกออบเจ็กต์ที่สร้างบนอุปกรณ์

เมื่อฉันบันทึก ฉันจะใช้การโทรมาตรฐานนี้:

     NSError *error;
 if (![context save:&error])
  NSLog(@"Error %@", [error localizedDescription]);

ไม่มีใครรู้วิธีการทำเช่นนี้?


person Peter    schedule 18.06.2010    source แหล่งที่มา
comment
Core Data Entities ของคุณสร้างขึ้นอย่างไร พวกมันสะท้อนถึงวัตถุจากเว็บหรือไม่?   -  person RickiG    schedule 18.06.2010
comment
ตามตัวอย่างฉันมีเอนทิตีเส้นทาง คุณสามารถสร้างเส้นทางของคุณเองบนอุปกรณ์ได้ แต่คุณยังสามารถดาวน์โหลดเส้นทางจากเว็บได้อีกด้วย ในทั้งสองกรณี ฉันจะแทรกเอนทิตีใหม่ในบริบทของฉัน ฉันควรมีบริบทสองประการในการดำเนินการนี้หรือไม่   -  person Peter    schedule 18.06.2010


คำตอบ (2)


ฉันจะนำสิ่งนี้โดยบอกว่าฉันไม่ได้ทำงานกับข้อมูลหลักมานานขนาดนั้น ดังนั้นลองพิจารณาดูสักนิด...

...คุณจำเป็นต้องทำงานกับหลายเส้นทางเว็บพร้อมกันหรือไม่? หากครั้งละหนึ่งรายการ อาจบันทึกลงในข้อมูลหลักเป็น "เส้นทางที่ดาวน์โหลดล่าสุด" เมื่อคุณดาวน์โหลดอันใหม่ ให้โหลดออบเจ็กต์ "ดาวน์โหลดล่าสุด" แล้วเขียนทับข้อมูลด้วยเส้นทางใหม่ ด้วยวิธีนี้คุณจะเก็บเฉพาะอันล่าสุดเท่านั้น

หากคุณตั้งใจที่จะไม่บันทึกเส้นทางเว็บใดๆ ฉันจะไม่เกี่ยวข้องกับบริบทข้อมูลหลักของคุณด้วยซ้ำ เพียงดาวน์โหลดและทำงานกับข้อมูลในแอปโดยตรง - ฉันอาจจะสับสนว่าแอปของคุณทำงานที่นี่อย่างไร แต่ถ้าคุณไม่ต้องการบันทึกเส้นทางเว็บในร้านค้า ทำไมคุณถึงเพิ่มเส้นทางเหล่านั้นลงในบริบท

สิ่งเดียวที่ฉันนึกได้คือต้องมีบริบทแยกจากกัน ไม่เช่นนั้น คุณจะต้องย้อนกลับและลบออบเจ็กต์ที่ดาวน์โหลดจากเว็บหลังจากบันทึก ซึ่งอาจทำให้เละเทะได้

หากคุณให้ข้อมูลที่เจาะจงมากขึ้นเกี่ยวกับโมเดลข้อมูลและวิธีใช้ข้อมูลของคุณ ฉันอาจให้คำแนะนำที่เจาะจงกว่านี้ได้

person Jim    schedule 18.06.2010

ฉันจะสร้างร้านค้าถาวรในหน่วยความจำและกำหนดอินสแตนซ์ที่ดาวน์โหลดทางเว็บ "ชั่วคราว" ให้กับร้านค้านี้ ควรกำหนดอินสแตนซ์ที่คุณต้องการบันทึกให้กับร้านค้าถาวรบนดิสก์

person Barry Wark    schedule 18.06.2010