ไม่สามารถพิมพ์วัตถุ ('po') ใน xcode6 beta 6 osx swift project: (ข้อผิดพลาดในการนำเข้าอัตโนมัติ: ไม่สามารถรับโมดูล '__ObjC' จากบริบท AST)


87

ความพยายามในการพิมพ์วัตถุ ( poคำสั่ง) ในโครงการ xcode 6 beta 6 OSX Swift ส่งผลให้เกิดข้อความแสดงข้อผิดพลาดนี้:

(lldb) po managedObject
error: Error in auto-import:
failed to get module '__ObjC' from AST context

NSManagedObjectในกรณีนี้วัตถุในคำถามเป็นตัวอย่างของ

มีคำแนะนำเกี่ยวกับวิธีช่วยนำเข้าอัตโนมัติในการ__ObjC moduleเข้าสู่บริบท LLVM Abstract Syntax Tree หรือไม่


ฉันมีปัญหาเดียวกันไม่สามารถแม้แต่ po ตัวเองใน viewController ฉันไม่รู้ว่าสิ่งนี้มาจากไหนหรือจะแก้อย่างไร
BObereder

1
ฉันยังคงมีปัญหาเดียวกันในเบต้า 7 เช่นกัน
weiran

2
ใช้ print แทน po
ant_one

2
แทนที่จะใช้นิพจน์คุณได้ลองใช้ตัวแปร frameagedObjectหรือไม่
vladof81

5
ตัวแปรเฟรม 'ทำงาน' (ตัวย่อก็เช่นกันfr v ) ในกรณีของฉัน ' ManageObjectของฉันคือ JSON ในพจนานุกรมผ่าน AFNetworking ผมต้องการที่จะเห็นในพจนานุกรมบางอย่างเช่นmanagedObject [ 'คีย์'] ที่ไม่ได้ทำงานกับเวี
Zak J

คำตอบ:


24

ตั้งแต่ Xcode 6.1 หากคุณพยายามใช้คำสั่ง po สองครั้งมันจะใช้ได้กับความพยายามครั้งที่สอง คำสั่ง po แรกจะล้มเหลวเสมอสำหรับแต่ละเซสชันการดีบักใหม่ แต่การเรียกที่ตามมาจะใช้งานได้


เหมือนกันที่นี่มันพัง
user1366265

7
มันไม่ทำงานอีกต่อไปสำหรับ Xcode 7 ... ยังคงเป็นปัญหาเดิม
BartłomiejSemańczyk

4
ในความพยายามครั้งที่สองฉันได้รับ:error: The AST context is in a fatal error state.
yujean

7

มีปัญหาเดียวกันใน xcode 7.3.1:

error: Error in auto-import:
failed to get module 'Touch' from AST context:
<module-includes>:1:9: note: in file included from <module-includes>:1:
#import "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h"
        ^
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk/usr/include/libxml2/libxml/tree.h:17:10: error: 'libxml/xmlversion.h' file not found
#include <libxml/xmlversion.h>
         ^
could not build Objective-C module 'LibXML2'

แต่คุณสามารถใช้fr v managedObjectแทนpo managedObject.


3

ฉันขอแนะนำให้ตรวจสอบอีกครั้งว่าคุณมีไฟล์

-D แก้ปัญหา

ตั้งค่าสถานะภายใต้ 'ธง Swift อื่น ๆ ' สำหรับรูปแบบที่คุณใช้ในการดีบัก ฉันประสบปัญหาที่คล้ายกันนี้เมื่อฉันลบโดยไม่ได้ตั้งใจ



1

ฉันพูดถึงข้อความแสดงข้อผิดพลาดที่คล้ายกันกับวิศวกรของ Apple ที่ WWDC2017 ดูเหมือนว่าปัญหานี้อาจมีสาเหตุหลายประการและฉันทราบว่าของฉันแตกต่างจากที่อธิบายไว้ข้างต้นเล็กน้อย

ทีมของฉันใช้เวลาหลายสัปดาห์ในการพยายามหาสิ่งนี้และมันก็กลายเป็นบั๊กในคอมไพเลอร์ของ Apple ซึ่งเราไม่เคยคิดได้ด้วยตัวเอง นอกจากนี้ยังมีวิธีแก้ปัญหาที่ง่ายมาก

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

ดังนั้นนี่คือ ในกรณีของเราเรามีโครงการ Objective-C โดยใช้เฟรมเวิร์ก Swift และ Objective-C ผสมกัน การแก้ไขนี้อาจนำไปใช้ในบริบทที่แตกต่างกันเล็กน้อยเพียงแค่ลองใช้

มีข้อผิดพลาดเกิดขึ้นกับวิธีการรวบรวมแฟล็กที่รวบรวมจากเฟรมเวิร์กและโปรเจ็กต์และโปรเจ็กต์ "Objective-C แท้" "เปิดใช้งาน"

วิธีแก้ไข: เพิ่มไฟล์ Swift ที่ว่างเปล่าหนึ่งไฟล์ ("Whatever.swift" หรืออะไรก็ได้) ในโปรเจ็กต์ Objective-C ของคุณทำให้มันไม่บริสุทธิ์ตามวัตถุประสงค์-c อีกต่อไป (new-> file-> Swift file อย่า สร้างส่วนหัวของการเชื่อมโยงไฟล์จะมีเฉพาะการนำเข้าของ Foundation)

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