ฉันกำลังพยายามรับเส้นทางของทรัพยากรในเครื่องมือบรรทัดคำสั่งใน Xcode (8 เบต้า 2) นี่คือสิ่งที่ฉันมี:
- ทรัพยากร file.xyz ถูกลากเข้าไปในโปรเจ็กต์และความเป็นสมาชิกเป้าหมายตรงกับโปรเจ็กต์หลัก
- ภายใต้ขั้นตอนการสร้าง -> คัดลอกไฟล์ ปลายทางจะถูกตั้งค่าเป็น "ทรัพยากร" และเส้นทางย่อยว่างเปล่า "คัดลอกเฉพาะเมื่อติดตั้ง" จะไม่ถูกเลือก และ file.xyz จะแสดงอยู่ในตารางด้านล่าง
ในไฟล์ main.swift ของฉัน ฉันมีรหัสต่อไปนี้:
guard let filePath = Bundle.pathForResource("file", ofType: "xyz", inDirectory: "Resources") else{ fatalError("Could not find file") }
fatalError
จะถูกทริกเกอร์ทุกครั้ง มีความคิดอะไรบ้าง? ฉันเข้าใจว่าเครื่องมือบรรทัดคำสั่งไม่มีชุดแอปพลิเคชัน และนั่นคือสาเหตุที่ทรัพยากรถูกคัดลอกไปยังโฟลเดอร์ทรัพยากรแทน แต่อาร์กิวเมนต์ inDirectory
ของฉันค่อนข้างเดายาก... ขอบคุณที่อ่าน
แก้ไข: เป้าหมายหลักของฉันคือการเข้าถึงไฟล์ทรัพยากร (ในกรณีนี้คือไฟล์ข้อความ) จาก CLT ฉันไม่ได้ยึดติดกับวิธีการเฉพาะเจาะจงนี้ ดังนั้นหากมีวิธีอื่นก็เยี่ยมยอดเช่นกัน!
Bundle.main()
คือnil
!) โฟลเดอร์Resources
ควรมาจากไหนหรือโฟลเดอร์ควรอยู่ที่ไหน พารามิเตอร์inDirectory
ระบุโฟลเดอร์ย่อยที่ถูกต้องของโฟลเดอร์Resources
ในบันเดิล - person vadian   schedule 17.07.2016(NS)Bundle
- person vadian   schedule 17.07.2016Info.plist
ใน CLI แต่ฉันไม่รู้ว่าจะเข้าถึงได้อย่างไร - person vadian   schedule 17.07.2016Bundle
กล่าวอีกนัยหนึ่งBundle.main
ส่งคืนบันเดิลที่ถูกต้องสำหรับไดเร็กทอรีที่มีบรรทัดคำสั่งที่สามารถเรียกใช้งานได้Bundle.main.resourceURL
ส่งคืน URL สำหรับไดเรกทอรีหลักBundle.main.pathForResource("file", ofType:"xyz")
จะส่งคืนพาธที่ถูกต้อง หากfile.xyz
ถูกคัดลอกไปยังไดเร็กทอรีเดียวกันกับเครื่องมือบรรทัดคำสั่ง - person NSGod   schedule 17.07.2016Bundle.main
และBundle.main.resourceURL
ให้ไดเร็กทอรีที่มีไบนารีบรรทัดคำสั่ง ฉันไม่แน่ใจว่าจะเข้าถึงไฟล์อื่นได้อย่างไร - person Jay Wong   schedule 09.02.2018