อัปเดตสำหรับ Xcode 7 (ขั้นสุดท้าย):
การเตรียมชื่อโมดูลให้กับคลาส (เช่นใน Xcode 6 และเบต้ารุ่นแรก ๆ ของ Xcode 7) ไม่จำเป็นอีกต่อไป เอกสารประกอบของ Apple การปรับใช้คลาสย่อยของวัตถุข้อมูลที่จัดการหลักได้รับการอัปเดตตามนั้น
ตัวตรวจสอบตัวแบบข้อมูลมีสองฟิลด์ "ระดับ" และ "โมดูล" สำหรับเอนทิตี:
เมื่อคุณสร้างคลาสย่อยวัตถุที่มีการจัดการ Swift สำหรับเอนทิตีฟิลด์ "โมดูล" ถูกตั้งค่าเป็น "โมดูลผลิตภัณฑ์ปัจจุบัน" และด้วยการตั้งค่านี้การสร้างอินสแตนซ์จะทำงานได้ทั้งในแอปพลิเคชันหลักและในการทดสอบหน่วย คลาสย่อยของวัตถุที่ถูกจัดการจะต้องไม่ถูกทำเครื่องหมายด้วย@objc(classname)
(สิ่งนี้ถูกตรวจสอบในhttps://stackoverflow.com/a/31288029/1187415 )
อีกวิธีหนึ่งคุณสามารถล้างข้อมูลในฟิลด์ "โมดูล" (จะแสดง "ไม่มี") และทำเครื่องหมายคลาสย่อยของวัตถุที่ถูกจัดการด้วย@objc(classname)
(สิ่งนี้ถูกตรวจสอบในhttps://stackoverflow.com/a/31287260/1187415 )
หมายเหตุ:คำตอบนี้ถูกเขียนขึ้นครั้งแรกสำหรับ Xcode 6 มีการเปลี่ยนแปลงบางอย่างในรุ่น Xcode 7 รุ่นต่างๆที่เกี่ยวกับปัญหานี้ เนื่องจากเป็นคำตอบที่ได้รับการยอมรับพร้อม upvotes และลิงก์จำนวนมากฉันจึงพยายามสรุปสถานการณ์สำหรับรุ่นสุดท้ายของ Xcode 7
ผมทำทั้งสองของฉัน "การวิจัย" ของตัวเองและอ่านทุกคำตอบทั้งสองคำถามนี้และคำถามที่คล้ายกัน
CoreData: คำเตือน: ไม่สามารถโหลดชื่อชั้น ดังนั้นการระบุแหล่งที่มาจะไปที่รายการทั้งหมดแม้ว่าฉันจะไม่ได้ระบุไว้โดยเฉพาะ
คำตอบก่อนหน้าสำหรับXcode 6 :
ดังที่ระบุไว้ในการใช้งานคลาสข้อมูลหลักของวัตถุที่จัดการข้อมูลคุณต้องนำหน้าชื่อคลาสเอนทิตีในฟิลด์คลาสในตัวตรวจสอบเอนทิตีโมเดลด้วยชื่อของโมดูลของคุณตัวอย่างเช่น "MyFirstSwiftApp.User"