ดังนั้นฉันจึงสร้างแอปพลิเคชันที่ใช้เอกสารใน Cocoa และพยายามทำความเข้าใจ NSManagedObjectContext ฉันได้อ่าน "Core Data Basics" ของ Apple แล้ว แต่ไม่สามารถเข้าใจได้ ในแอปพลิเคชันของฉัน ฉันสร้างคลาส CoreDataUtility แบบกำหนดเองเพื่อให้คลาสทั้งหมดของฉันสามารถรับบริบทผ่านบรรทัดโค้ดต่อไปนี้:
MyCoreDataUtility *coreData = [MyCoreDataUtility sharedCoreDataUtility];
NSManagedObjectContext *context = [coreData context];
ฉันได้แนวคิดนี้มาจากเว็บไซต์ "โกโก้คือแฟนของฉัน" ที่ที่ฉันสับสนคือเมื่อฉันเรียกใช้แอปพลิเคชันและสร้างหน้าต่างใหม่ (คลาสเจ้าของไฟล์ของฉันคือคลาสย่อยของ NSPersistentDocument) หากฉันทำการเปลี่ยนแปลงบริบทในหน้าต่างใหม่ มุมมองจะแสดงการเปลี่ยนแปลงในหน้าต่างเก่าและเป็น เช่นเดียวกับอันใหม่ จากนี้ฉันสมมติว่าทั้งสองหน้าต่างอ้างถึงบริบทเดียวกันหรืออย่างน้อยก็ข้อมูลเดียวกันในทางใดทางหนึ่ง
ดังนั้นคำถามของฉันคือ:
- ฉันมีข้อสันนิษฐานว่าทุกครั้งที่ฉันสร้างหน้าต่างใหม่บริบทใหม่จะถูกสร้างขึ้น ถูกต้องหรือไม่
- หากมีการสร้างบริบทใหม่และมีความแตกต่างกัน (จริง ๆ แล้วฉันพิมพ์ที่อยู่หน่วยความจำของทั้งสองบริบทและที่อยู่ต่างกัน) สิ่งนี้เกี่ยวข้องกับผู้ประสานงานร้านค้าถาวรหรือที่เก็บวัตถุถาวรหรือไม่ (ทั้งสองแนวคิดนี้เช่นกัน คลุมเครือในใจของฉัน)?
- หากเอกสารทั้งหมดอ้างอิงถึงบริบทเดียวกัน ฉันมีหน้าที่รับผิดชอบในการสร้างบริบทใหม่ทุกครั้งที่สร้างเอกสารหรือไม่
ขอบคุณทุกคน!