การเปลี่ยนชื่อโปรเจ็กต์ xcode 4 และโฟลเดอร์จริง


119

ฉันรู้วิธีเปลี่ยนชื่อโปรเจ็กต์ใน Xcode 4 แต่คุณจะเปลี่ยนชื่อโฟลเดอร์ซอร์สได้อย่างไร สิ่งนี้คือการเปลี่ยนชื่อโครงการใน Xcode เปลี่ยนชื่อภายใน Xcode เท่านั้น (แม้ว่าจะมีความคืบหน้าเมื่อเทียบกับรุ่นก่อนหน้า) - แต่ทำไม Xcode ถึงไม่เปลี่ยนชื่อโฟลเดอร์ในระบบไฟล์ที่ฉันไม่รู้


คุณลองเปลี่ยนชื่อโฟลเดอร์แล้วหรือยัง?
David Brown

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

คำตอบ:


259

คุณสามารถทำได้จากภายใน Xcode โดยไม่ต้องใช้มือแก้ไขไฟล์ pbxproj ในโปรแกรมแก้ไขข้อความ!

วิธีการมีดังนี้

  1. เปลี่ยนชื่อโฟลเดอร์ซอร์สของคุณใน Finder สิ่งนี้จะทำให้โปรเจ็กต์แตกในตอนแรกเนื่องจาก Xcode ไม่ตรวจจับโดยอัตโนมัติเมื่อโฟลเดอร์จริงที่โฟลเดอร์โปรเจ็กต์เสมือน (สีเหลือง) ชี้ไปนั้นมีการเปลี่ยนแปลงดังนั้นไฟล์ทั้งหมดในโฟลเดอร์นั้นจะกลายเป็นสีแดงใน Xcode ไม่ต้องกังวลเราจะแก้ไขในขั้นตอนที่ 3

  2. ใน Xcode ให้คลิกที่โฟลเดอร์เสมือน (ตอนนี้เสีย) ในแถบด้านซ้ายมือและเปลี่ยนชื่อให้ตรงกับชื่อใน Finder (คุณสามารถเรียกมันว่าอะไรก็ได้ที่คุณต้องการหรือไม่เปลี่ยนชื่อเลยก็ได้ แต่มันจะบ้า ) วิธีนี้จะไม่แก้ไขไฟล์สีแดงภายในโฟลเดอร์ แต่ก็ไม่เป็นไร

  3. ในแถบด้านขวามือใน Xcode คลิกไอคอนที่แสดงในภาพหน้าจอด้านล่างเพื่อเปิดกล่องโต้ตอบไฟล์ เลือกโฟลเดอร์ที่คุณเปลี่ยนชื่อก่อนหน้านี้ สิ่งนี้จะเชื่อมโยงโฟลเดอร์เสมือนกับโฟลเดอร์จริงบนดิสก์อีกครั้งและจะแก้ไขลิงก์ไปยังไฟล์ทั้งหมดที่อยู่ภายในโดยอัตโนมัติ

  4. ในการตั้งค่าการสร้างของคุณค้นหาชื่อโฟลเดอร์เก่าและเปลี่ยนชื่อเหตุการณ์ที่คุณพบด้วยตนเอง โดยทั่วไปจะมีสองอันคือ oldfolder / prefix.pch และ oldfolder / info.plist แต่อาจมีอื่น ๆ

ทุกอย่างเสร็จเรียบร้อย!

ใส่คำอธิบายภาพที่นี่

แก้ไข: ตัวเลือกนี้ยังคงมีอยู่ใน Xcode 5 แต่ถูกซ่อนไว้อย่างเป็นประโยชน์ตามค่าเริ่มต้น หากต้องการแสดงให้คลิกส่วนหัว "Identity and Type" บาง ๆ ในตัวตรวจสอบเหนือแผง "การตั้งค่าข้อความ" เพื่อขยาย


ดีเยี่ยมฉันจะเพิ่มว่าถ้าการเปลี่ยนชื่อเป็นส่วนหนึ่งของการเปลี่ยนชื่อโครงการทั้งหมดก็มีขั้นตอนอื่น: เปลี่ยน "ชื่อโครงการ" ในด้านขวามือบริเวณด้านบนและอนุญาตให้ Xcode เปลี่ยนชื่อทุกอย่างภายในเพื่อให้ตรงกัน
RedYeti

1
ทุกอย่างทำงานได้ดีและมีการเปลี่ยนชื่อโครงการ แต่ข้อความสร้างที่ด้านบนและชื่อโดยตัวจำลองยังคงเป็นชื่อเก่าหากต้องการเปลี่ยนสิ่งนี้: ไปที่เมนูผลิตภัณฑ์จัดการโครงร่างและเปลี่ยนชื่อโครงการ
BlackTigerX

จริง คุณยังสามารถลบโครงร่างและกดปุ่มสร้างโครงร่างอัตโนมัติ
Nick Lockwood

ใครรู้วิธีทำใน xCode 5 ฉันไม่เห็นปุ่มวิเศษนั่นอีกต่อไป :(
Jason

มันยังคงมีมันซ่อนอยู่ คุณต้องขยายแถวที่เรียกว่า "Identity and type" ในตัวตรวจสอบโดยคลิกที่มัน ใช้เวลาประมาณ 20 นาทีในการคิดออก!
Nick Lockwood

112

ฉันทำมาแล้วหลายสิบครั้ง:

  • เปลี่ยนชื่อโครงการโดยคลิกจากนั้นแก้ไขชื่อใน Xcode Project Navigator ของคุณ
  • ปิด Xcode
  • เปลี่ยนชื่อโฟลเดอร์ต้นทาง
  • จาก Finder ให้เปิด.pbxprojไฟล์ภายในชุดโครงการ (เมนูบริบท "แสดงเนื้อหาแพ็คเกจ") ด้วยโปรแกรมแก้ไขข้อความใด ๆ
  • ค้นหาและแทนที่ชื่อโฟลเดอร์เดิมที่เกิดขึ้นด้วยชื่อโฟลเดอร์ใหม่
  • บันทึกไฟล์
  • เปิดโครงการ Xcode

3
อย่าลืมทำสิ่งนี้หลังจากเปลี่ยนชื่อโครงการ
Aram Kocharyan

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

วิธีค้นหาและแทนที่ขึ้นอยู่กับโปรแกรมแก้ไขข้อความหรือเครื่องมือที่เลือก ในกรณีของฉันด้วย vim: <ESC>:% s / old / new / g <ENTER> อาจล้มเหลวหากมีสิ่งอื่นในไฟล์โปรเจ็กต์ที่มีชื่อขัดแย้งกัน
djromero

ขอบคุณ @madmw ฉันคิดออกแล้ว ฉันใช้ TextEdit ฉันคิดว่าเคล็ดลับคือการแทนที่แอตทริบิวต์ "มี" เป็น "คำเต็ม" ในขณะที่ทำการค้นหาและแทนที่ และฉันโพสต์คำแนะนำโดยละเอียดด้านล่าง
Philip007

ใช้งานได้จริง! เมื่อเปลี่ยนชื่อโฟลเดอร์ของเป้าหมายตัวอย่างเช่นไลบรารีแบบคงที่ฉันต้องยุ่งกับโครงร่างของฉันด้วยเช่นกันเปลี่ยนชื่อส่วนหัวคำนำหน้าและไฟล์ plist ข้อมูล
Tim Potter

12

งาน: เปลี่ยนชื่อ "Play" เป็น "Play2" ทั้งใน Xcode และใน Finder

เปลี่ยนสิ่งนี้:

ใส่คำอธิบายภาพที่นี่

สำหรับสิ่งนี้:

ใส่คำอธิบายภาพที่นี่

ขั้นตอน:

// ก่อนสิ่งใดโปรดสำรองข้อมูลโครงการใน Finder!

  • เปลี่ยนชื่อโปรเจ็กต์ใน Xcode Project navigator // คลิกชื่อโปรเจ็กต์จากนั้นกด Enter
  • เปลี่ยนชื่อกลุ่มใน Xcode Project navigator // ไม่มีผลกับชื่อโฟลเดอร์ใน Finder
  • ปิด Xcode
  • เปลี่ยนชื่อโฟลเดอร์ภายนอก (คอลัมน์ด้านซ้ายในภาพ) ใน Finder

// ขั้นตอนข้างต้นทั้งหมดตรงไปตรงมาและไม่มีผลข้างเคียง // ตอนนี้มาถึงส่วนที่ยุ่งยาก: เปลี่ยนชื่อโฟลเดอร์ด้านใน (คอลัมน์กลางในภาพ) ใน Finder (อันที่อยู่ในระดับเดียวกันกับ. xcodeproj)

  • เปลี่ยนชื่อโฟลเดอร์ภายในใน Finder ในขณะที่ปิด Xcode
  • คลิกขวาที่. xcodeproj เลือก "Show Package Contents"
  • เปิดไฟล์. pbxproj ด้วย Mac TextEdit
  • ค้นหาและแทนที่ "Play" ทั้งหมดด้วย "Play2" หากต้องการรับประกันว่าทุกอย่างจะดำเนินไปอย่างถูกต้องให้คลิกลูกศรทางด้านซ้ายสุดของแถบค้นหาและแก้ไขแอตทริบิวต์การค้นหา เปลี่ยน "มี" เป็น "คำเต็ม" และยกเลิกการเลือก "ละเว้นตัวพิมพ์เล็กและใหญ่"
  • บันทึกไฟล์. pbxproj
  • เปิดโครงการ Xcode และเรียกใช้

4

นี่คือวิธีการเปลี่ยนชื่อโปรเจ็กต์อย่างมีประสิทธิภาพใน XCode4 (รวมถึงโฟลเดอร์ไฟล์):

  1. ปิดโปรเจ็กต์ที่เปิดอยู่ทั้งหมดใน XCode อย่างสมบูรณ์เพื่อป้องกันปัญหาใด ๆ
  2. คัดลอกโปรเจ็กต์ที่เป็นปัญหาไปยังโฟลเดอร์ใหม่ (สำคัญ: สำรองโปรเจ็กต์เก่าของคุณไว้)
  3. เปิดโครงการ
  4. เปลี่ยนชื่อโครงการใน XCode4 (ดับเบิลคลิกที่ชื่อโครงการ) เปลี่ยนชื่อและทำตามขั้นตอน (ใช่ทุกอย่าง)
  5. ไปที่ผลิตภัณฑ์จัดการโครงร่างและเปลี่ยนชื่อโครงร่าง (ดับเบิลคลิกที่ชื่อโครงร่าง)
  6. ปิดโปรเจ็กต์ของคุณ (ตรวจสอบให้แน่ใจว่าปิดสนิทแล้วมิฉะนั้นขั้นตอนต่อไปจะใช้ไม่ได้)
  7. ใน Finder ไปที่โฟลเดอร์ Project และคลิกขวาที่ไฟล์. xcodeproj จากนั้นเลือกตัวเลือก "Show Package Contents"
  8. จากนั้นคลิกขวาที่ไฟล์. pbxproj และเปิดด้วย TextEdit
  9. แทนที่การเกิดขึ้นทั้งหมดของชื่อโฟลเดอร์ที่โปรเจ็กต์เคยใช้งาน (ชื่อโปรเจ็กต์เก่าสำหรับชื่อโปรเจ็กต์ใหม่)
  10. บันทึกไฟล์
  11. เปิดโครงการอีกครั้งและสร้างมัน!

คุณสามารถให้คำแนะนำโดยละเอียดเพิ่มเติมในขั้นตอนที่ 9 ได้หรือไม่?
Philip007

2

ก่อนอื่น - อย่าเปลี่ยนชื่อโครงการ Xcode !!!

หากคุณต้องการสิ่งที่อยู่ข้างใต้อาจเป็นได้ - ฉันไม่เคยใช้งานได้เลยลงเอยด้วยการสร้างโครงการใหม่และเริ่มคัดลอกทั้งหมดในไฟล์ที่มีอยู่ Xcode นั้นอ่า .... มันมีหลายอย่างที่ไม่ได้ผลเช่นลองเปลี่ยนชื่อไฟล์จาก "ชื่อ" เป็น "ชื่อ" ขอให้สนุก

ฉันพบคำตอบหรือวิธีแก้ไขปัญหานี้: เปิดไฟล์ pbxproj โดยคลิกขวาที่ "แสดงเนื้อหาแพ็กเกจ" จากนั้นคุณแก้ไขไฟล์ project.pbxproj - คุณต้องเปลี่ยนชื่อการอ้างอิงที่เรียกว่า path และสิ่งอื่น ๆ - เพียงแค่ค้นหา เพิ่มชื่อโฟลเดอร์ "/"

อย่างนั้นแหละ. หวังว่าจะช่วยได้บ้าง


2
ฉันเปลี่ยนชื่อโปรเจ็กต์เมื่อวานนี้และทำงานได้ดี ฉันยอมรับว่า Xcode คือ "ahh" แม้ว่า: D
manmal

มีวิธีที่ปลอดภัยและได้รับการสนับสนุนอย่างสมบูรณ์ - ดูคำตอบของฉัน
Nick Lockwood

2

นี่คือปัญหาอื่นที่คุณควรระวังขณะแทนที่ค่าในไฟล์ * .pbxproj ของคุณ หากชื่อโฟลเดอร์เก่าของคุณคือ FooBar คุณจะมีรายการในไฟล์ * .pbxproj ที่มีลักษณะดังนี้:

เส้นทาง = FooBar

สมมติว่าชื่อโฟลเดอร์ใหม่ของคุณคือ Foo Bar นั่นคือคุณกำลังแนะนำช่องว่าง จากนั้นบรรทัดนี้ควรกลายเป็น

path = "Foo Bar"

หากคุณเพียงแค่ค้นหาและแทนที่อย่างง่ายผลลัพธ์จะเป็นไฟล์ * .pbxproj ที่ Xcode ไม่สามารถแยกวิเคราะห์ได้ หากชื่อโฟลเดอร์ใหม่ของคุณมีช่องว่างและชื่อเก่าไม่มีช่องว่างอย่าลืมใส่เครื่องหมายคำพูดคู่


2

ฉันสรุปด้วยตัวเองหลังจากตรวจสอบคำตอบต่างๆข้างต้นและลองใช้ตัวเอง สมมติว่าชื่อโครงการปัจจุบันคือ ProjAbc และคุณต้องการเปลี่ยนชื่อเป็น ProjDef:

  1. ออกจาก Xcode ของโครงการนั้น

  2. ใน Finder ให้ทำสำเนาโฟลเดอร์ด้านบน ProjAbc.xcodeproj สำหรับการสำรองข้อมูล

  3. ใน Finder เปลี่ยนชื่อโฟลเดอร์ ABOVE ProjAbc.xcodeproj ได้อย่างอิสระหากคุณรู้สึกว่าต้องการให้เหมาะกับชื่อโปรเจ็กต์ใหม่

  4. ใน Finder เปลี่ยนชื่อโฟลเดอร์ซอร์สไฟล์แบบขนานกับ ProjAbc.xcodeproj จาก ProjAbc เป็น ProjDef

  5. เปิด Xcode สำหรับ ProjAbc.xcodeproj (ใน Project Navigator ไฟล์ทั้งหมดในโฟลเดอร์ซอร์สเสมือน ProjAbc จะเป็นสีแดง)

  6. ใน Xcode ให้คลิกที่โฟลเดอร์เสมือน (ตอนนี้เสีย) ใน Project Navigator ในแถบด้านซ้ายมือและเปลี่ยนชื่อให้ตรงกับชื่อใน Finder - ProjDef ยังไม่สามารถแก้ไขไฟล์สีแดงภายในโฟลเดอร์ได้ แต่ก็ไม่เป็นไร

  7. ใน Xcode (ยังคงเลือกโฟลเดอร์เสมือนในแถบด้านข้างซ้ายมือ) ในแถบด้านขวาในตัวตรวจสอบไฟล์ให้คลิกไอคอนที่แสดงในภาพหน้าจอด้านล่างเพื่อเปิดกล่องโต้ตอบไฟล์ ในกล่องโต้ตอบไฟล์ให้เลือกโฟลเดอร์ที่คุณเปลี่ยนชื่อก่อนหน้านี้ (ProjDef) สิ่งนี้จะเชื่อมโยงโฟลเดอร์เสมือนกับโฟลเดอร์จริงบนดิสก์อีกครั้งและจะแก้ไขลิงก์ไปยังไฟล์ทั้งหมดที่อยู่ภายในโดยอัตโนมัติ รูปภาพแสดงตำแหน่งที่จะคลิกไอคอนโฟลเดอร์ในตัวตรวจสอบไฟล์

  8. ใน Xcode ใน Project Navigator ให้คลิกที่ชื่อโปรเจ็กต์ ProjAbc และเปลี่ยนชื่อเป็น ProjDef

    • คุณจะได้รับแจ้ง: "เปลี่ยนชื่อรายการเนื้อหาโครงการ?" คลิกปุ่ม "เปลี่ยนชื่อ"
    • คุณจะได้รับแจ้ง: "คุณต้องการให้ Xcode ถ่ายภาพอัตโนมัติก่อนเปลี่ยนชื่อโครงการและการดำเนินการที่คล้ายกันหรือไม่" คลิก "ปิดการใช้งาน" หรือ "เปิดใช้งาน" ไม่เป็นไร.
  9. ใน Xcode ตอนนี้เปิด "Build Settings" ภายในเป้าหมาย ProjDef (ภายในโปรเจ็กต์ ProjDef ใน Project Navigator) เปลี่ยนชื่อทั้งชื่อพับและชื่อไฟล์ของทั้งไฟล์ * -Info.plist และ * -Prefix.pch ให้มี ProjDef แทน ProjAbc

  10. ใน Xcode ใน Project Navigator ในโฟลเดอร์แหล่งเสมือน ProjDef ใน "ไฟล์ที่รองรับ" ยังเปลี่ยนชื่ออีกครั้งทั้งไฟล์ * -Info.plist และ * -Prefix.pch เพื่อให้มี ProjDef แทน ProjAbc

  11. ในเมนู Xcode ให้กด Product / Scheme / Manage Schemes ... (หรือคลิก "ProjAbc"> ชื่อ Scheme ใน Scheme Bar ที่ด้านซ้ายบนของ Xcode และกด "Manage Schemes ... ") และในกล่องโต้ตอบเปลี่ยนชื่อ Scheme จาก ProjAbc ไปยัง ProjDef จากนั้นกดปุ่ม "OK" หากชื่อโปรเจ็กต์ประกอบด้วยคำเดียวคุณสามารถเรียกใช้ได้ทันที!

  12. ใน Xcode ให้แก้ไขบรรทัดความคิดเห็นบนสุดในไฟล์ Support Files / * - Prefix.pch และแทนที่ ProjAbc โดย ProjDef (2 ครั้ง) แน่นอนว่าการแก้ไขความคิดเห็นนี้เป็นทางเลือก

  13. ออกจาก Xcode

  14. ใน Finder ให้ชี้ไปที่ ProjDef.xcodeproj แล้วเปิดในโปรแกรมแก้ไขข้อความ (เปิดใน TextWrangler.app หรือคลิกเมาส์ขวาและในเมนูป๊อปอัพให้กด "Show Package Contents" จากนั้นแก้ไขไฟล์ project.pbxproj ใน TextEdit.app)

  15. ใน Text Editor ให้ค้นหา "ProjAbc" (Entire Word, Match Case) ซึ่งจะปรากฏขึ้นหนึ่งครั้ง (ในย่อหน้า: / * Begin PBXNativeTarget section * / in line: productName = ProjAbc;) และแทนที่ด้วย "ProjDef" แน่นอนว่าโปรเจ็กต์สามารถทำงานได้อยู่ดี! ดังนั้นขั้นตอนนี้จึงเป็นทางเลือก

  16. หากชื่อโปรเจ็กต์ประกอบด้วยคำแยก 2 คำขึ้นไปเช่น "ProjDef Geh" คุณต้องทำขั้นตอนต่อไป: ค้นหาการอ้างอิงไปยังโฟลเดอร์ Finder ของโฟลเดอร์ไฟล์ต้นฉบับเสมือน -

    • ค้นหาบรรทัด: path = ProjDef Geh;
    • จะปรากฏขึ้นหนึ่งครั้งในย่อหน้า / * ProjDef Geh * /
    • แทนที่ด้วยบรรทัด: path = "ProjDef Geh";
  17. บันทึกจากโปรแกรมแก้ไขข้อความและออกจากโปรแกรมแก้ไขข้อความ

  18. แค่นั้นแหละ. ตามที่เขียนไว้ข้างต้นหากชื่อโปรเจ็กต์ประกอบด้วยคำเดียวคุณสามารถรันได้ทันทีเมื่อสิ้นสุดขั้นตอนที่ 11


คุณทำให้สิ่งนี้ซับซ้อนมากขึ้นจนต้องมี หากคุณทำขั้นตอนที่ 8 (เปลี่ยนชื่อโปรเจ็กต์) ก่อนขั้นตอนที่ 4 (เปลี่ยนชื่อโฟลเดอร์ต้นทาง) จะเปลี่ยนชื่อไฟล์ Info.plist และ Prefix.pch ของคุณโดยอัตโนมัติดังนั้นคุณสามารถข้ามขั้นตอนที่ 9 และ 10 ได้
Nick Lockwood

0

ฉันพบว่าคำตอบข้างต้นมีประโยชน์จริงๆโดยเฉพาะคำตอบของ Nick Lockwood

ฉันเพิ่งเปลี่ยนชื่อสองสามโฟลเดอร์ใน Xcode 8 และพบปัญหาอีกสองอย่าง: A) "หายไปจากข้อผิดพลาดในการคัดลอกที่ใช้งานได้" B) ข้อมูลหลักขัดข้องเกิดปัญหาหลักของข้อมูล

วิธีแก้ไขปัญหาทั้งสองนี้:

A) " หายไปจากข้อผิดพลาดในการคัดลอกการทำงาน "

ฉันพบว่าคำตอบด้านล่างมีประโยชน์มาก: การอัปเกรด Swift 3 / Xcode 8 - ไฟล์ DerivedData 100 รายการหายไปจากข้อผิดพลาดในการคัดลอกที่ใช้งานได้

โดยทั่วไป Xcode 8 มีการควบคุมแหล่งที่มาอย่างเข้มงวดซึ่งอาจนำไปสู่ข้อผิดพลาดข้างต้น คุณต้อง:

  1. ล้างข้อมูลที่ได้รับ Xcode
  2. ไปที่ Source Control แล้วคลิก Refresh Status
  3. ไปที่ Source Control แล้วคลิก Commit; เลือกไฟล์ทั้งหมดบนแถบด้านข้างซ้ายของเมนูคอมมิตเมื่อคอมมิต (คลิกขวา -> เลือกทั้งหมด)
  4. คุณอาจได้รับข้อผิดพลาด
  5. ปิดเมนู Commit
  6. รีเฟรชสถานะ
  7. ปิดโครงการของคุณโดยออกจาก Xcode
  8. เปิดโปรเจ็กต์ของคุณใหม่สถานะรีเฟรชยืนยันอีกครั้ง
  9. เวลานี้การคอมมิตควรใช้งานได้
  10. คลิก Project -> Clean

ฉันสมมติว่าคุณได้เปิดใช้งาน Source Control แล้ว หากคุณไม่ได้ทำหรือหากคุณติดขัดในการปฏิบัติตามคำแนะนำของฉันเพียงทำตามคำแนะนำโดยละเอียดเพิ่มเติมในลิงก์ที่ให้ไว้

B) ข้อมูลหลักขัดข้อง

การเปลี่ยนชื่อโฟลเดอร์บางครั้งจะทำให้ข้อมูลหลักเสียหาย มีสาเหตุที่เป็นไปได้หลายประการที่เป็นเช่นนั้นและด้านล่างนี้คือการแก้ไขที่ฉันสามารถแนะนำได้:

  1. ชื่อรุ่นAppDelegateไม่ถูกต้อง นี่เป็นกรณีของฉัน ไปที่ AppDelegate let container = NSPersistentContainer(name: "YOUR CORE DATA MODEL NAME")ของคุณและหา ตรวจสอบให้แน่ใจว่าชื่อถูกต้อง

    ในอนาคต (หลายปีหลังจากโพสต์นี้เมื่อ Apple เปลี่ยน Core Data อีกครั้ง) หรือหากคุณใช้ Core Data รุ่นเก่ากว่าโปรดดู AppDelegate อย่างรอบคอบ อาจมีบางอย่างที่น่าสนใจที่รบกวนข้อมูลหลักของคุณ

  2. ชื่อรุ่นที่ไม่ถูกต้องในxcdatamodeld ไปที่ Finder และเปิด. xcdatamodeld ในโปรแกรมแก้ไขข้อความ

ตรวจสอบสิ่งต่อไปนี้:

<plist version="1.0">
  <dict>
     <key>_XCCurrentVersionName</key>
     <string>YOUR CORE DATA MODEL NAME.xcdatamodel</string>  <-- Make sure this is correct.
  </dict>
</plist>

รายละเอียดเพิ่มเติมที่นี่: ไฟล์โมเดลข้อมูลหลักไม่โหลดเมื่อเปลี่ยนชื่อ

  1. หากสองสิ่งข้างต้นใช้ไม่ได้ผลให้ลอง 1) ลบเอนทิตีของคุณแล้วเพิ่มเอนทิตีอื่นที่เหมือนกันหรือ 2) ลบ xcdatamodeld ของคุณแล้วเพิ่มโมเดลข้อมูลอื่นที่เหมือนกัน (และตรวจสอบให้แน่ใจว่าชื่อของ xcdatamodeld ใหม่ตรงกัน สิ่งที่อยู่ใน AppDelegate ของคุณและส่วนที่เหลือของรหัสของคุณ) อย่าทำเช่นนี้กับแอปที่ใช้งานจริง - หรือหากคุณทำเช่นนี้ตรวจสอบให้แน่ใจว่าได้ย้ายข้อมูลหลักของคุณอย่างถูกต้องในขณะที่ดำเนินการดังกล่าว

0

หากคุณมีการอ้างอิงเก่าของโครงการต้นทางในโปรเจ็กต์ของคุณเมื่อเผยแพร่โปรเจ็กต์ (ทุกการเปลี่ยนแปลงที่เกิดขึ้นจะส่งผลต่อทั้ง proejct) ที่นี่วิธีแก้ปัญหา

  • เผยแพร่โครงการจากโครงการต้นทาง
  • เปลี่ยนชื่อโฟลเดอร์ซอร์สของโปรเจ็กต์ต้นทางที่ทำลายปัญหาการอ้างอิง
  • ในการเผยแพร่ proejct ทุกอย่างจะเป็นสีแดงให้เลือกโฟลเดอร์ปัจจุบันของโครงการ (ภาพหน้าจอแสดงในคำตอบขีดสีเขียวของ stackoverflow)

================================================== ======================

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.