สนามเด็กเล่น Xcode ติดอยู่ที่ 'Running playground' หรือ 'Launching simulator' และจะไม่เรียกใช้โค้ดทำอย่างไร?


144

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

Playground execution failed: error: Couldn't lookup symbols:
__swift_FORCE_LOAD_$_swiftCoreImage 
__swift_FORCE_LOAD_$_swiftFoundation 
_playground_log_hidden 
_playground_logger_initialize 
_playground_log_postprint 

thread #1: tid = 0xc0cd0, 0x000000010ea7c3c0 MyPlayground`executePlayground, queue = 'com.apple.main-thread', stop reason = breakpoint 1.2

frame #0: 0x000000010ea7c3c0 MyPlayground`executePlayground
frame #1: 0x000000010ea7b9c0 MyPlayground`__37-[XCPAppDelegate enqueueRunLoopBlock]_block_invoke + 32 
frame #2: 0x000000010f59625c CoreFoundation`__CFRUNLOOP_IS_CALLING_OUT_TO_A_BLOCK__ + 12
frame #3: 0x000000010f57b304 CoreFoundation`__CFRunLoopDoBlocks + 356
frame #4: 0x000000010f57aa75 CoreFoundation`__CFRunLoopRun + 901
frame #5: 0x000000010f57a494 CoreFoundation`CFRunLoopRunSpecific + 420
frame #6: 0x0000000114985a6f GraphicsServices`GSEventRunModal + 161
frame #7: 0x0000000110124f34 UIKit`UIApplicationMain + 159
frame #8: 0x000000010ea7b6e9 MyPlayground`main + 201
frame #9: 0x0000000112ad268d libdyld.dylib`start + 1
frame #10: 0x0000000112ad268d libdyld.dylib`start + 1

ฉันใช้ Xcode 8.0 (8A218a) บน macOS Sierra 10.12

ฮาร์ดแวร์ :
MacBook Pro (13 "กลางปี ​​2012)
2,5 GHz Intel Core i5
4 GB 1600 MHz Ram DDR3

ฉันได้ดูไปแล้ว แต่อย่างน้อยกระทู้เหล่านี้ก็ไม่ได้ให้คำตอบ:
https://forums.developer.apple.com/thread/5902
https://github.com/jas/playground/issues/9

สิ่งที่ฉันได้ลองด้วยความสำเร็จเป็นศูนย์:

  • รีสตาร์ท Xcode
  • การติดตั้ง Xcode อีกครั้ง (ลดลงเป็น 7.3 แต่เนื่องจากไม่ได้ช่วยฉันอัปเกรดเป็น 8.0)
  • รีสตาร์ทเครื่อง
  • สร้างสนามเด็กเล่นใหม่

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

ขอบคุณล่วงหน้าไชโย


ขอบคุณที่ตอบกลับอย่างรวดเร็ว. ฉันกำลังใช้สนามเด็กเล่นเพียงเพราะฉันมีการสมัครใช้งานที่ Treehouse.com และพวกเขาสนับสนุนให้ใช้สนามเด็กเล่นเมื่อทำการทดสอบแนวคิดใหม่
Emil Osvald

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

นั่นเป็นเรื่องจริงอย่างแน่นอน ขอบคุณสำหรับการป้อนข้อมูลของคุณด้านฉันจะทำตามที่คุณแนะนำตราบใดที่ไม่มีทางออกที่ดีกว่า ฉันจะยังคงให้เธรดนี้ทำงานอยู่ในกรณีที่มีคนหาวิธีแก้ปัญหา
Emil Osvald

2
ฉันไม่มีคำแนะนำที่จะให้ที่นี่ @EmilOsvald ฉันสามารถรายงานสิ่งนี้ได้ว่าเกิดขึ้นบ่อยครั้งใน MacBook ของฉันเช่นกัน (และเกิดขึ้นตลอดเวลาเมื่อฉันใช้ iMac เช่นกันกับเครื่องใหม่ทั้งหมดที่มีการอัปเดตล่าสุด) คุณไม่ควรรู้สึกผิดที่ต้องการใช้สนามเด็กเล่น ในทางทฤษฎีพวกเขาเป็นผลิตภัณฑ์ที่ยอดเยี่ยมและเมื่อพวกเขาทำงานพวกเขา
Ilias Karim

1
ไม่ควรมีช่องว่างก่อนความคิดเห็นแรก (หากบรรทัดแรกของข้อความคือความคิดเห็น) และไม่มีบรรทัดว่างเปล่าเป็นบรรทัดแรก แจ้งให้เราทราบ
Daniel Springer

คำตอบ:


191

Ans เปลี่ยนเป็นแพลตฟอร์ม macOS

เมื่อคุณสร้างสนามเด็กเล่นตามค่าเริ่มต้นให้เลือกแพลตฟอร์ม iOS และนำเข้า UIKit โดยอัตโนมัติ มัน UIKit ที่เกิดปัญหาและติดอยู่ตลอดเวลา หากรหัส (ฝึกหัด) ของคุณไม่ได้ใช้ UIKit คุณสามารถเปลี่ยนเป็นแพลตฟอร์ม MacOSได้ ในฐานะที่เป็นหลัก (ไม่แน่นอนแม้ว่า) ความแตกต่างระหว่าง iOS และ MacOS อยู่ใน APPKit และ UIKit

ที่มุมบนขวาของ Xcode Playground ของคุณคลิกที่แสดง / ซ่อนยูทิลิตี้ -> ตัวตรวจสอบไฟล์ -> การตั้งค่าสนามเด็กเล่น -> แพลตฟอร์ม -> macOS

ดูหน้าจอภาพด้านล่าง: ป้อนคำอธิบายรูปภาพที่นี่


4
สิ่งนี้ดูเหมือนจะใช้ได้สำหรับฉันพร้อมกับตั้งค่าปุ่มเรียกใช้สนามเด็กเล่นให้เป็นแบบแมนนวล พวกเขาจะแก้ไขปัญหานี้หรือไม่ดูเหมือนเป็นเรื่องไร้สาระ
hoboBob

2
ขอบคุณมันใช้งานได้ดีเมื่อใช้ Foundation สิ่งที่ฉันต้องการ ฉันไม่สามารถเชื่อว่าเด็กมีข้อบกพร่องมาก ...
Adrien Yvon

15
ไร้สาระ. รหัส 3 บรรทัด (ไม่มีการนำเข้า UIKit) และฉันต้อง google นี้ ผู้คนจำนวนมากจะยอมแพ้และประกาศว่า Swift ไร้ประโยชน์
James Bedford

4
มันไม่ได้ผลสำหรับฉัน ฉันใช้ Xcode 9.4.1 (ไม่ใช่รุ่นเบต้า) และฉันต้องรีสตาร์ท Xcode อย่างต่อเนื่อง ค่อนข้างง่อย ...
Michael Rogers

1
นอกจากนี้หากสนามเด็กเล่นมีขนาดใหญ่พอ Cmd + Shift + Enter จะหยุดทำงาน ใครเป็นคนเขียนโปรแกรมอึนี้ เด็ก ๆ ที่ใช้ Playgrounds บน iPad?
Robo Robok

70

ฉันได้ลองทำสิ่งต่อไปนี้แล้วและมันก็ใช้ได้กับฉัน:

  1. กดปุ่ม "หยุดสนามเด็กเล่น" ที่ด้านล่าง
  2. ลบบรรทัดความคิดเห็นแรกและทำให้คำสั่งการนำเข้าบรรทัดแรก ไม่มีพื้นที่ด้านบนที่นำเข้า
  3. กดปุ่มดำเนินการ

1
ฉันพบว่าไม่ควรมีช่องว่างก่อนแสดงความคิดเห็น แต่คุณสามารถมีความคิดเห็นเป็นบรรทัดแรกได้ ไม่มีบรรทัดว่างข้างหน้าหรือไม่มีการเยื้องก่อนหน้าบนบรรทัด
Daniel Springer

3
ฉันจะเพิ่มไปที่จำเป็นต้องรีสตาร์ท Xcode ดูเหมือนว่าจะทำงานให้ฉัน
jeb_is_a_mess

26
ทำงานให้ฉัน ฉันไม่อยากจะเชื่อเลยว่าข้อผิดพลาดนี้ช่างไร้สาระ Apple ควรละอายใจ
gangelo

1
การรีสตาร์ท xcode เป็นสิ่งเดียวที่ทำงานให้ฉัน
George Filippakos

1
น่ากลัว ฉันพยายามเลิกใช้ xcode การล้างข้อมูลที่ได้รับ ฯลฯ แต่ไม่มีอะไรทำงานยกเว้นสิ่งนี้ แม้ว่าฉันจะมีการนำเข้าที่บรรทัดแรกแล้ว!
Shivam Pokhriyal

58

ในกรณีของฉัน Xcode 8.3.2 มันทำงานได้เมื่อฉันลองเป็นขั้นตอนด้านล่าง:

  1. ไฟล์ -> ปิด "Name.playground"
  2. ไฟล์ -> ปิดสนามเด็กเล่น
  3. ออกจาก Xcode
  4. เปิด Xcode อีกครั้ง

2
มีบางสิ่งที่นอกเหนือจากฉันเช่นกันทุกคนที่ใช้ XCode รุ่นใหม่มีข้อมูลเชิงลึกเกี่ยวกับสาเหตุของความล้มเหลวนี้หรือไม่ สิ่งนี้กลายเป็นงานที่ไม่มีการบุกรุกที่ดีที่สุดอย่างไรก็ตามฉันจะไม่พิจารณาวิธีแก้ปัญหาที่สั้น ๆ ความคิดเห็นในส่วนหัวสนามเด็กเล่นมีส่วนใดส่วนหนึ่งของปัญหาหรือไม่? และแอปเปิ้ลพูดว่าอะไรเกี่ยวกับสาเหตุ?
truedat101

สิ่งนี้ใช้ได้สำหรับฉันพร้อมกับลบบรรทัดว่างเปล่าออกก่อนที่จะพิมพ์คำสั่งของฉัน
FromTheStix

2
นี่เป็นวิธีที่ยุ่งเหยิงที่จะต้องแก้ไขปัญหา IDE
PruitIgoe

เห็นด้วยนี่เป็นง่อยมาก
Ilias Karim

51

กระบวนการหลักของ Buggy Simulator ยังคงใช้งานได้แม้หลังจากปิด Xcode แล้ว ดังนั้นนี่คือขั้นตอน:

  1. ออกจาก Xcode;
  2. ฆ่าcom.apple.CoreSimulator.CoreSimulatorServiceกระบวนการในการตรวจสอบกิจกรรม
  3. เรียกใช้ Xcode และเรียกใช้ Playground ของคุณ

1
ฉันชอบคำตอบนี้มากกว่าคำตอบอื่น ๆ เพราะมันทำให้หัวใจของเรื่องมากขึ้น
สร้าง

1
ฉันจำเป็นต้องทำสิ่งนี้ทุกครั้งหรือไม่?
Vaibhav Saran

20

จากประสบการณ์ของฉันคุณควร:

  1. ป้องกันการรีเฟรชสนามเด็กเล่น Swift โดยถือ: ลูกศร►ที่ด้านล่างซ้ายของสนามเด็กเล่นและเลือก "เรียกใช้ด้วยตนเอง"
  2. ออกจาก Xcode
  3. รีสตาร์ท Xcode

มันใช้งานได้ดีมาก


4
แต่ไม่ใช่จุดทั้งหมดของ Playground ที่จะเรียกใช้รหัสของคุณตามที่เขียนไว้?
saphryn

16

ฉันได้ยกเลิกความคิดเห็นในบรรทัดแรกแล้ว มันแก้ไขให้ฉัน อย่าลืมลองใช้หลังจากที่คุณปิดและเปิดใช้งาน Xcode อีกครั้งและบังคับให้ออกจาก com.apple.coresimulator จากการตรวจสอบกิจกรรม


1
บน XCode 8.2.1 สิ่งนี้ใช้ได้สำหรับฉัน เมื่อฉันลบความคิดเห็นบรรทัดแรกเกี่ยวกับสนามเด็กเล่นมันก็วิ่งเร็ว ฉันไม่จำเป็นต้องออกจากโปรแกรมจำลอง
jessi

ขอบคุณ @Fiveagle คำตอบ แน่นอนว่าฉันต้องบังคับให้กระบวนการ coresimulator ลบบรรทัดแรกดังนั้น "import UIKit" จึงเป็นบรรทัดแรก และการรีสตาร์ท XCode นั้นเป็นการทำทฤษฏี แต่การคอมไพล์ครั้งแรกใช้เวลาสักครู่ในการแสดง
yves Baumes

13

การเพิ่มการนำเข้า PlaygroundSupport ช่วยแก้ไขปัญหาให้ฉัน :)


2
น่าสนใจ คุณได้สิ่งนี้มาจากไหน
Daniel Springer

ถ้ามันมีประสิทธิภาพเท่าที่คุณพูดคุณจะคิดว่า devs จะรวมอยู่ในค่าเริ่มต้น ฉันจะทดลองกับสิ่งนี้ ขอบคุณ!
saphryn

6

คุณสามารถเปลี่ยนเป็นการประมวลผลด้วยตนเอง มันใช้งานได้สำหรับฉัน ภาพหน้าจอ


3

ตรวจสอบให้แน่ใจว่าคุณฆ่า xcode ในการตรวจสอบกิจกรรมก่อนที่จะฆ่ากระบวนการcom.apple.CoreSimulator.CoreSimulatorServiceในที่สุด ในการตรวจสอบกิจกรรม ฉันพยายามฆ่ากระบวนการหลายครั้งและฉันรู้ว่า xcode ยังคงทำงานในกิจกรรมพื้นหลังดังนั้นกระบวนการcom.apple.CoreSimulator.CoreSimulatorServiceจะปรากฏขึ้นอีกครั้งแม้ว่าคุณเพิ่งจะฆ่ามัน


2

ฉันมีปัญหาเดียวกันสิ่งที่ฉันทำก็คือเปิดตัวแก้ไขความช่วยเหลือและทุกอย่างทำงานได้ดีกับฉันแม้ว่าฉันจะปิดตัวแก้ไขความช่วยเหลือ! อย่าถามว่าทำไมการลองผิดลองถูก หวังว่านี่จะช่วยคุณได้


นั่นเป็นความคิดที่ดีจริงๆ เนื่องจากปุ่มเล่น / หยุดไม่ทำให้เกิดความยุ่งยากในกระบวนการหรือบังคับให้รีเฟรชฉันเดาว่าคุณสามารถนึกถึงการสลับเปิดและปิดตัวแก้ไขผู้ช่วยแทนปุ่มเล่น lol เยี่ยมมาก :))
saphryn

0

หลังจากที่เหลือในขณะที่คุณจะเห็นข้อความแสดงข้อผิดพลาดจากนั้นคุณไปที่ดู> พื้นที่ดีบัก> เปิดใช้งานคอนโซลแล้วเล่นอีกครั้งทำงานให้ฉัน


1
จะเกิดอะไรขึ้น 5 นาที? วันหนึ่ง?
Daniel Springer

จาก 5 ถึง 15 นาทีบางทีหลังจากผ่านไปหลายสัปดาห์ของปัญหานี้ฉันเปลี่ยนเป็น SSD และอัพเกรดเป็นหน่วยความจำ RAM 16GB และแก้ไขได้เช่นเดียวกับการเปลี่ยนแปลงทั้งกลางวันและกลางคืน
CrtlBreak

0

ตรวจสอบแผนการจัดเก็บ iCloud!

หากคุณมีหนึ่งเครื่องมันจะซิงค์คอมพิวเตอร์ทั้งเครื่องซึ่งรวมถึงโฟลเดอร์เดสก์ท็อปและเอกสารอย่างต่อเนื่อง ลองสร้างโฟลเดอร์ "Local Files" ในโฟลเดอร์ Home ของคุณ (command + shift + h) และทำให้โครงการ Playground ของคุณอยู่ตรงนั้นโดยที่มันจะไม่ซิงค์กับ iCloud

สิ่งนี้ได้ผลกับฉันฉันหวังว่าสิ่งนี้จะได้ผลกับคุณเช่นกัน! :)


มันใช้งานได้จริงสำหรับฉัน ใครก็ตามที่มีปัญหานี้ควรลองทำ
Peter Schorn

0

ฉันใช้ Xcode 10.2 และได้รับปัญหาเดียวกัน ดังนั้นโดยทั่วไปเพียงใช้Online Swift Playground

สิ่งนี้ทำหน้าที่ตามวัตถุประสงค์ของฉัน! :-)


0

ในกรณีของฉันปัญหาเกิดจากผู้ใช้ ฉันมีตัวช่วยแก้ไขปรากฏขึ้น แต่ไม่ได้เลือกมุมมองสด ตรวจสอบให้แน่ใจว่ามันมีลักษณะเช่นนี้:

LiveView

และไม่ชอบสิ่งนี้:

ป้อนคำอธิบายรูปภาพที่นี่


0

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


0

ราวกับว่าคำถามนี้ไม่มีคำตอบเพียงพอฉันจะมอบ "วิธีแก้ปัญหา" ให้กับปัญหาสนามเด็กเล่น Swift ที่ติดอยู่:

ทางออกเดียวที่ฉันเจอซึ่งใช้ได้ดีสำหรับฉัน (ดังนั้นฉันไม่ต้องรีสตาร์ท Xcode):

killall launchd_sim

สิ่งนี้จะทำให้การหมุน "Running Playground ... " หายไปและคุณสามารถกระตุ้นการทำงานใหม่ได้ ระวัง: การประมวลผลครั้งต่อไปจะหมุนขึ้นlaunchd_simและกระบวนการลูกทั้งหมดนั้นอีกครั้ง อาจเป็นการดีที่สุดที่จะฆ่าเฉพาะกระบวนการลูกที่เกี่ยวข้อง แต่ฉันไม่พบมัน

แต่ผมทำเช่นนี้เพียงเมื่อฉันไม่ได้ใช้ iOS จำลองในแบบคู่ขนานเป็นกระบวนการเป็นกระบวนการที่เด็กlaunchd_simSimulator


0

ฉันลบข้อมูลที่ได้รับและโฟลเดอร์สร้างใหม่ทั้งหมด มันใช้งานได้สำหรับฉัน ฉันกำลังเผชิญหน้ากับ Xcode 11.2.1 และ Xcode 10.1 ในเครื่องเดียวกัน


-1

ฉันกำลังเผชิญกับปัญหาเดียวกัน แต่หลังจาก googling และทดลองเล็กน้อยฉันพบว่าต้องทำทุกครั้งimport UIKitก่อนนำเข้า libs อื่น ๆ


-1

ประการแรกลบบรรทัดความคิดเห็นที่ inbuilt

จากนั้นแม้ว่าคุณจะใส่ความคิดเห็นในบรรทัดแรกมันก็ยังใช้ได้อยู่ ป้อนคำอธิบายรูปภาพที่นี่


-1

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

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