CoreData -สู่ความสัมพันธ์มากมาย

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

ต่อไปนี้เป็นโครงร่างคร่าวๆ เกี่ยวกับสิ่งที่ฉันมีใน Core Data Model:
เอนทิตี (แอตทริบิวต์):
รูปภาพ (id, title, desc, file path)
คำหลัก (id, ชื่อ)

เนื่องจากรูปภาพสามารถมีคำหลักหลายคำที่เกี่ยวข้องกัน ฉันจะต้องสร้างความสัมพันธ์จาก 'รูปภาพ' กับปลายทางเป็น 'คำหลัก' และทำให้เป็นความสัมพันธ์แบบ -to many หรือไม่ ถูกต้อง / บ้า / ผิดโดยสิ้นเชิง? ฉันจะเพิ่ม/ดึงบันทึกสำหรับความสัมพันธ์นั้นได้อย่างไร


person ChickensDontClap    schedule 14.04.2012    source แหล่งที่มา


คำตอบ (2)


นี่ถูกต้องแล้ว มีหลายวิธีในการเข้าถึงสิ่งนี้ แต่วิธีที่ตรงไปตรงมาที่สุดคือการสร้างคลาสย่อย NSManagedObject (ตัวแก้ไข -> สร้างคลาสย่อย NSManagedObject...) เมื่อเติมข้อมูลเอนทิตีรูปถ่ายเหล่านี้ ความสัมพันธ์ของคำสำคัญจะถูกเติมในคุณสมบัติที่เรียกว่าคำสำคัญ

person Joseph DeCarlo    schedule 14.04.2012

หากมีการกำหนดคำหลักและผู้ใช้สามารถเลือกได้จากรายการที่กำหนด ฉันจะไม่ใช้คำหลักของเอนทิตี เคล็ดลับใช้ชื่อเอกพจน์เสมอ (ภาพถ่าย, คำสำคัญ) ฉันจะมีคำหลักอยู่ใน plist และผู้ใช้เลือกสองสามคำ จากนั้นคุณสามารถสร้างสตริงที่คั่นด้วยเครื่องหมายจุลภาคเพื่อบันทึกเป็นคุณสมบัติใน Photo ดังที่โจเซฟกล่าวไว้ คุณต้องการจัดคลาสย่อย NSManagedObject จากนั้นฉันจะเพิ่มวิธีการรับสตริง (คำหลัก) และส่งคืน BOOL โดยระบุว่าคำหลักนั้นเป็นส่วนหนึ่งของค่าคำหลักที่คั่นด้วยเครื่องหมายจุลภาคในคุณสมบัติ Photo หรือไม่

person Daniel    schedule 14.04.2012