“ การใช้งานประเภทที่ไม่ได้ประกาศ” ใน Swift ถึงแม้ว่าประเภทจะเป็นแบบภายในและมีอยู่ในโมดูลเดียวกัน


173

ฉันมีประเภทในโมดูลของฉัน:

import Cocoa

class ColoredDotView : NSView {
   ...
}

มันถูกใช้ในคลาสต่าง ๆ จำนวนมากโดยไม่มีปัญหา:

class EditSubjectPopoverController : NSObject {

    @IBOutlet internal var subjectColorDotView : ColoredDotView!
    ...
}

แต่สำหรับเหตุผลบางอย่างเมื่อผมใช้มันในหนึ่งเฉพาะชั้นผมมีข้อผิดพลาดการรวบรวมกับประเภท:

class EditTaskPopoverController : NSObject {

    @IBOutlet internal var lowPriorityDotView : ColoredDotView! // Error here
    @IBOutlet internal var medPriorityDotView : ColoredDotView! // And here...
    @IBOutlet internal var highPriorityDotView : ColoredDotView! // And here...
    ...
}

ข้อผิดพลาดในการรวบรวมคือ:

EditTaskPopoverController.swift: 15: 49: การใช้ประเภทที่ไม่ได้ประกาศ 'ColoredDotView'

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

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

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


ฉันมีหลายกรณีที่ข้อผิดพลาดจริงมีอยู่สองสามบรรทัด (หรือมากกว่านั้น) และ Xcode จะติดแท็กบางอย่างที่ไม่มีอันตรายด้วยข้อความแสดงข้อผิดพลาด ดูว่าคุณจะได้รับข้อผิดพลาดนั้นให้หายไปหรือไม่โดยการลบรหัสที่เหลือของคุณจากนั้นเพิ่มกลับทีละนิด ...
Nate Cook

ขอบคุณ Nate - โชคไม่ดีที่ฉันลบการvarประกาศและลงไปที่งานสร้างที่ผ่านมา จากนั้นฉันก็เพิ่มหนึ่งในการประกาศที่ด้านบนและข้อผิดพลาดจะกลับมาทันที: imgur.com/VUUBK2K
Craig Otis

คำตอบ:


200

สำหรับฉันฉันพบข้อผิดพลาดนี้เมื่อเป้าหมายการทดสอบของฉันไม่มีไฟล์ที่รวดเร็วที่แอปสร้างเป้าหมายของฉันมีอยู่ในแหล่งรวบรวม มันสับสนมากเพราะ 'ประเภทที่ไม่ได้ประกาศ' ถูกใช้ในสถานที่อื่น ๆ มากมายโดยไม่มีปัญหาและข้อผิดพลาดดูเหมือนคลุมเครือ ดังนั้นวิธีการแก้ปัญหามีแน่นอนในการเพิ่มไฟล์ที่มี 'ประเภทไม่ได้ประกาศ' ไปยังเป้าหมายการทดสอบ


2
สิ่งเดียวกันสำหรับฉัน: ปัญหาเกิดขึ้นเมื่อคลาสที่ใช้โดยคลาสอื่นที่รวมอยู่ในเป้าหมายการทดสอบไม่รวมอยู่ในเป้าหมายการทดสอบด้วย! (╯°□°) ╯︵ ┻━┻
Francesco Vadicamo

2
คุณเพิ่งแก้ไขปัญหาที่ทำให้ฉันเดือดร้อนครึ่งชั่วโมง ฉันได้นำเข้าคลาส Swift ก่อนหน้านี้ในโครงการปัจจุบัน แต่เห็นได้ชัดว่ายังไม่ได้เพิ่มคลาสเก่าลงในเป้าหมายการทดสอบ แต่การเติมข้อความอัตโนมัติทำให้ฉันนึกถึงการคิดทั้งหมดเป็นเรื่องปกติ ... จนกว่าฉันจะพยายามสร้างและเรียกใช้ อะไรนะ ... ! ขอบคุณมาก.
Jim Hillhouse

2
นี่เป็นการแก้ไขปัญหาสำหรับฉันเช่นกัน ฉันคลิกที่ไฟล์และไฟล์ -> ทำสำเนาสำเนา สำเนาใหม่มีการระบุไว้ แต่ไม่รวมอยู่ใน "แหล่งรวบรวม"
Ron Myschuk

1
ในกรณีของฉันฉันได้เลือก 3 เป้าหมาย (โครงการ, การทดสอบ UI และหน่วย) ฉันต้องยกเลิกการเลือกเป้าหมายการทดสอบ UI & หน่วยเพื่อแก้ไขข้อผิดพลาดนี้
Frakcool

1
"Solution of course ... " สันนิษฐานว่าผู้อ่านเข้าใจวิธีเพิ่มเป้าหมายการทดสอบ สำหรับเราที่เพิ่งเริ่มต้นด้วย Xcode ไม่ใช่ช่วงเวลา "แน่นอน ... " ฉันตอบคำถามของ @ edwin เมื่อเขาตอบคำถามของคุณเสร็จแล้ว
Michael

181

@Craig Otis นี้ได้รับคำตอบแล้ว แต่ปัญหาเกิดขึ้นเมื่อคลาสที่มีปัญหาไม่ได้อยู่ในเป้าหมายเดียวกันโดยปกติแล้วเป้าหมายการทดสอบจะหายไป เพียงตรวจสอบให้แน่ใจว่าได้ทำเครื่องหมายในช่องต่อไปนี้


สมาชิกเป้าหมาย

แก้ไข

เพื่อดูการเป็นสมาชิกเป้าหมาย เลือกไฟล์ของคุณจากนั้นเปิดตัวตรวจสอบไฟล์ (⌥ + ⌘ + 1) [ ตัวเลือก ] + [ คำสั่ง ] + 1

คำอธิบายโดยละเอียด


ไม่แน่ใจ แต่เมื่อฉันยกเลิกการเลือก "ทดสอบ" เป้าหมาย (ในกรณีนี้คือ YAWA-WeatherTest) มันสร้างขึ้นโดยไม่มีข้อผิดพลาด
dellos

คุณช่วยอธิบายได้อย่างชัดเจนว่าที่ไหนใน XCode เพื่อตั้งค่าสมาชิกเป้าหมายนี้ ฉันจำไม่ได้ว่าเคยเห็นมาก่อน ขอบคุณ
Casey Perkins

2
อันที่จริงให้ยกเลิกการเลือกเป้าหมายการทดสอบเนื่องจากนี่เป็นสาเหตุที่เรา "@testable import ... " ในโครงการทดสอบ
วาด ..

ภาพหน้าจอมีประโยชน์มาก ขอบคุณ!
Michael

37

วุ้ยในที่สุดก็วินิจฉัยเรื่องนี้ อย่างไรก็ตามไฟล์ Swift ที่กระทำผิดEditTaskPopoverController.swiftนั้นอยู่ในขั้นตอนการสร้างที่ต่างกันสองช่วง

มันอยู่ในCompile Sourcesอย่างถูกต้องกับทุกไฟล์ที่สวิฟท์อื่น ๆ แต่มันก็ยังมีเหตุผลที่แปลกมากบางในCopy Bundle Resourcesขั้นตอนเป็นอย่างดีพร้อมกับทุก XIB ภาพและทรัพยากรของฉัน

ฉันไม่รู้ว่ามันไปถึงที่นั่นได้อย่างไร แต่การลบออกจากเฟสบิลด์พิเศษนั้นสามารถแก้ไขปัญหาได้


ฉันมีปัญหาเดียวกันกับที่ปรากฏออกมาเพราะฉันใช้github.com/kronenthaler/mod-pbxprojและ swift ฉันได้เพิ่ม swift ลงในประเภทโดยไม่ได้ตั้งใจเป็น PBXResourcesBuildPhase แทน PBXSourcesBuildPhase ใน mod-pbxproj
richy

2
Mate! ช่วยชีวิตฉันกำลังทลายหัวของฉันในเรื่องนี้ ไชโย
SparkyRobinson

27

ในเมนู XCode Product-> Clean จากนั้น Product-> Build ทำงานให้ฉัน ฉันพบปัญหานี้เมื่อเพิ่ม ViewController ใหม่ให้กับโครงการของฉันในกลุ่ม / โฟลเดอร์ใหม่


5
2 ชั่วโมงและฉันไม่เคยคิดว่าจะคลิกปุ่มสร้างเพื่อรวมกรอบหลังจากติดตั้งพ็อด ... ฉันจะออกไปเดี๋ยวนี้ ...
Cruceo

1
เสียเวลามากในการลองคำตอบอื่น ๆ แต่ไม่เคยทำความสะอาดและสร้าง ขอบคุณมาก
Zeero0

ฉันมีข้อผิดพลาดนี้ในขณะที่เล่นกับ SwiftUI ใน Xcode 11.0 beta 5 ในขณะที่ทำตามบทช่วยสอนของ Apple ผืนผ้าใบแสดงไฟล์อื่นอย่างถูกต้อง แต่ไฟล์ที่เพิ่มใหม่แสดงข้อผิดพลาดนี้ว่า LandmarkRow_Previews เป็นประเภทที่ไม่ได้ประกาศ เพียงแค่การสร้างการทำความสะอาดแก้ไขปัญหาได้
salo.dm

คำตอบนี้เทียบเท่ากับเทคโนโลยีที่รองรับ: "คุณลองรีสตาร์ทอุปกรณ์แล้วหรือยัง?" เคล็ดลับที่ดี :)
turingtested

14

ฉันมีปัญหาเดียวกันแน่นอน ไฟล์บางไฟล์ในกรอบงานของฉันไม่สามารถเข้าถึงได้จากคลาสอื่น ๆ ภายในโมดูลเดียวกัน

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

ภาพหน้าจอ 1

ตรวจสอบให้แน่ใจว่าไฟล์เป็นส่วนหนึ่งของเป้าหมายเฟรมเวิร์ก (ควรตรวจสอบกล่องเล็ก ๆ ในภาพหน้าจอด้านล่าง)

ภาพหน้าจอ 2


12

สาเหตุสำหรับฉันคือชื่อฟังก์ชันที่เริ่มต้นด้วยอักขระตัวเดียวกับประเภท:

@IBOutlet weak var tableView: CustomTableView!

และในการใช้งานฉันมีฟังก์ชั่นเริ่มต้นด้วยCustomTableView

func CustomTableView(tableView: CustomTableView, dataForRow row:  Int) -> NSData {...}

การแก้ไขคือการเปลี่ยนลายเซ็นของฟังก์ชันเพื่อไม่ให้ขึ้นต้นด้วยตัวอักษรเดียวกับชนิด (CustomTableView) เช่น:

func dataForRow(row: Int, tableView: CustomTableView) -> NSData {...}

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


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

7

ในกรณีที่ใครก็ตามพบปัญหาที่คล้ายกัน แต่การแก้ไข Compile Sourcesไม่สามารถแก้ปัญหาได้การรีสตาร์ท Xcode อาจ (ใช้งานได้สำหรับฉัน) รุ่นของฉัน Xcode Version 6.1 (6A1052d)คือ


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

การรีสตาร์ท Xcode แก้ไขปัญหามากมายแอปเปิ้ลควรทำอะไรบางอย่างกับมัน
ฟอร์จ

5

ในแอพของฉันฉันมีตัวแทนแอพและคลาสอื่น ๆ ที่ต้องเข้าถึงได้โดยการทดสอบในฐานะสาธารณะ ตามที่อธิบายไว้ที่นี่ฉันจะนำเข้าแอพของฉันไปยังการทดสอบ

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


5

ในกรณีของฉัน TestTarget ของแหล่งที่รวบรวมได้มีไฟล์จากเป้าหมายหลัก

อ้างอิง :

เป้าหมายการทดสอบมีไฟล์จากเป้าหมายหลักในแท็บแหล่งรวบรวม

ทำไมสิ่งนี้เกิดขึ้น

  • สิ่งนี้เกิดขึ้นเนื่องจากเราตรวจสอบการเชื่อมโยง TestTarget ในขณะที่สร้างไฟล์

  • หรือตรวจสอบตัวเลือกนี้จากผู้ตรวจสอบด้วยตนเอง

    อ้างอิง :

    สร้างไฟล์ - ตรวจสอบเป้าหมายการทดสอบแล้ว

ฉันแก้ไขได้อย่างไร

  • ฉันลบไฟล์เป้าหมายหลักออกจากแหล่งรวบรวมของ Test Target

5

ข้อผิดพลาดบางครั้งอาจโง่มาก

ก่อนตรวจสอบโซลูชันทั้งหมดที่นี่ตรวจสอบให้แน่ใจว่าคุณได้นำเข้าข้อมูลพื้นฐานทั้งหมดแล้ว

     import Foundation
     import UIKit

มีความเป็นไปได้ค่อนข้างมากที่เมื่อคุณนำเข้าไฟล์บางไฟล์จากภายนอกเข้าสู่โปรเจ็กต์ของคุณซึ่งอาจพลาดสิ่งพื้นฐานที่ฉันเคยได้รับ


มันเกิดขึ้นกับฉันสำหรับ CLLocationManagerDelegate และสิ่งที่ฉันต้องทำก็คือการนำเข้า CoreLocation บนไฟล์อื่น ๆ อย่าง Ugh ทำไมฉันเสียเวลา 20 นาที
ดีเร็ก

4

ฉันได้ลองใช้วิธีแก้ปัญหามากมายที่นำเสนอที่นี่ แต่ในที่สุดก็ลบไฟล์และสร้างมันขึ้นมาอีกครั้งและ Xcode ก็เป็นโมฆะ: /


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

ขอบคุณ! มันค่อนข้างแปลกประหลาด ทำงานให้ฉันด้วยเหมือนกัน ลบรหัสเก่าที่คัดลอกแล้วไปยังไฟล์ใหม่ไม่จำเป็นต้องทำความสะอาด / สร้าง
Timman

4

สิ่งนี้สามารถเกิดขึ้นได้หากคุณบังเอิญใช้ชื่อพารามิเตอร์เป็นตัวพิมพ์ใหญ่และเรียกมันว่าเหมือนกับวัตถุ

class func didRecieveData(BlockItems: [BlockItems])

3

นี่อาจช่วยใครซักคน

ฉันสร้างโครงการทดสอบใหม่ด้วย Core Data ชื่อ "CoreData" ไม่นานฉันมี "การใช้งานประเภทที่ไม่ได้ประกาศ" สำหรับ NSManagedObjectContext และคลาส Core Data อื่น ๆ หลังจากพยายามนำเข้าหลายครั้งเพิ่มไปยังเฟสของ Build และอื่น ๆ ฉันได้ลบโปรเจ็กต์และเริ่มใหม่ที่เรียกว่า "TestingCoreData" และมันก็ทำงานได้ดี

อย่าตั้งชื่อ (ทดสอบ) โปรเจ็กต์เช่นชื่อของคลาส


3

สิ่งนี้สามารถเกิดขึ้นได้หากคุณมีฟังก์ชั่นที่มีชื่อเดียวกับชนิดของวัตถุในลายเซ็นของคุณ ตัวอย่างเช่น:

class func Player(playerObj: Player)

จะทำให้คอมไพเลอร์สับสน (และอย่างถูกต้อง) เนื่องจากคอมไพเลอร์จะดูภายในไฟล์ก่อนที่จะดูไฟล์อื่น ดังนั้นมันจึงดูที่ "Player" ในลายเซ็นและคิดว่านั่นไม่ใช่วัตถุในขอบเขตนี้ แต่เป็นฟังก์ชันดังนั้นมีบางอย่างผิดปกติ

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


3

ฉันได้รับข้อความแสดงข้อผิดพลาดนี้ใน Xcode 8 ในขณะที่ refactoring code ในเฟรมเวิร์กมันออกมาว่าฉันลืมประกาศคลาสในเฟรมเวิร์กเป็น public


2

บางทีคุณอาจเพิ่มคลาสด้วย "FirstNameClass" บางส่วนและหลังจากนั้นเปลี่ยนชื่อเป็น "ColoredDotView" ด้วยตนเอง ลองคัดลอกเนื้อหาของคลาส "ColoredDotView" ไปยังคลิปบอร์ดลบ "ColoredDotView" ออกจากโครงการและเพิ่ม agin

ID นี้แก้ไขปัญหาที่คล้ายกันจากฉัน


2

ในกรณีของฉันเป็นข้อผิดพลาดจากฉัน ฉันได้เพิ่มไฟล์ใหม่เป็น "OS X> แหล่งที่มา> Cocoa Class" แทนที่จะเป็น "iOS> แหล่งที่มา> Cocoa Touch Class"


2

ในกรณีของฉันนี้เกิดจากชื่อคลาสย่อยที่ใช้ในบรรทัดถัดไปเป็นชื่อตัวแปรที่มีประเภทแตกต่างกัน:

var binGlow: pipGlow = pipGlow(style: "Bin")
var pipGlow: PipGlowSprite = PipGlowSprite()

โปรดสังเกตว่าในบรรทัดที่ 1 pipGlow เป็นชื่อของคลาสย่อย (ของ SKShapeNode) แต่ในบรรทัดที่สองฉันใช้ pipGlow เป็นชื่อตัวแปร นี่ไม่ใช่แค่รูปแบบการเข้ารหัสที่ไม่ดีเท่านั้น เมื่อฉันเปลี่ยนบรรทัดที่สองเป็น:

var binGlow: pipGlow = pipGlow(style: "Bin")
var pipGlowSprite: PipGlowSprite = PipGlowSprite()

ฉันไม่ได้รับข้อผิดพลาดอีกต่อไป ฉันหวังว่านี่จะช่วยให้ใครบางคน!


2

เมื่อทดสอบรหัส Swift ที่เป็นของแอปพลิเคชันอันดับแรกตรวจสอบให้แน่ใจว่าเป้าหมายการทดสอบนั้นกำลังสร้างแอปพลิเคชันเป็นการอ้างอิง จากนั้นในการทดสอบของคุณให้นำเข้าแอปพลิเคชันเป็นโมดูล ตัวอย่างเช่น:

@testable import MyApplication

สิ่งนี้จะทำให้วัตถุ Swift ที่เป็นส่วนหนึ่งของแอปพลิเคชันพร้อมใช้งานสำหรับการทดสอบ


2

ในกรณีของฉันที่เกิดจากการเข้ารหัสข้อความของไฟล์ swift ไฟล์หนึ่งแสดงว่า 'ไม่เข้ารหัสอย่างชัดเจน' และหลังจากแปลงเป็น 'UTF-8' ปัญหาจะได้รับการแก้ไข

และสาเหตุที่การเข้ารหัสข้อความของไฟล์ไม่ชัดเจนคือฉันคัดลอกรหัสทั้งหมดจากไฟล์ swift อื่น ๆ

ไม่มีภาพหน้าจอการเข้ารหัสที่ชัดเจน

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

ภาพหน้าจอ UTF-8

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


2

การทำความสะอาดโครงการแก้ปัญหาของฉันได้

ขั้นตอน: ผลิตภัณฑ์ -> ทำความสะอาด (หรือ Shift + Cmd + K)


1

ในกรณีของฉันฉันต้องการที่จะเพิ่มวิธีการที่มีวัตถุ swift ที่กำหนดเองเป็นพารามิเตอร์ประเภทและชื่อที่ฉันให้กับตัวแปรในพารามิเตอร์เป็นเช่นเดียวกับชื่อคลาสวัตถุที่กำหนดเอง

ปัญหาคืออะไรเช่นนี้:

func moveBlob(**blob** : blob){
    ...code
}

ส่วนที่เป็นตัวหนาทำให้เกิดข้อผิดพลาดประเภทไม่ได้ประกาศ



1

เช่นเดียวกับคนอื่น ๆ มันเป็นรหัสที่ไม่เกี่ยวข้องซึ่งทำให้การ@testableทำงานผิดปกติ

ในเป้าหมายการทดสอบของฉันมีไฟล์ส่วนหัว Objective-C ที่มี

@import ModuleUnderTest;

ฉันลบบรรทัดนี้ (เพราะการนำเข้าไม่จำเป็นจริง ๆ ) และ@testableเริ่มทำงานได้อย่างน่าอัศจรรย์อีกครั้ง

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



1

ในกรณีที่มีคนทำผิดพลาดเหมือนเดิมฉันทำ ...

ฉันได้รับข้อผิดพลาดนี้เนื่องจากในการเปลี่ยนชื่อไฟล์ต้นฉบับฉันได้ลบ.ชื่อไฟล์ออกโดยไม่ตั้งใจดังนั้นคอมไพเลอร์จึงถือว่าไฟล์เป็นไฟล์ข้อความธรรมดาและไม่เป็นแหล่งรวบรวม

ดังนั้นฉันตั้งใจจะเปลี่ยนชื่อไฟล์เป็น MyProtocol.swift แต่ตั้งใจตั้งชื่อมัน MyProtocolswift

มันเป็นความผิดพลาดง่าย ๆ แต่ก็ไม่ชัดเจนว่านี่คือสิ่งที่เกิดขึ้น


1

การไม่เพิ่มการตัดภาพการนำเข้าที่ถูกต้องอาจทำให้พลาดได้อย่างชัดเจน สำหรับฉันฉันเพิ่งละเว้นการนำเข้า PriorityUIKit


1

สถานการณ์ของฉันคือฉันลากไฟล์ใหม่ XXView.swift ลงในโครงการ และประกาศประเภทการดูให้เป็น XXView จากนั้นข้อผิดพลาด "การใช้ประเภทที่ไม่ได้ประกาศ ... "

ฉันแค่พยายามเพิ่ม XXView.swift ของฉันไปยังเป้าหมายทดสอบซึ่งแก้ไขข้อผิดพลาด แต่ฉันไม่ต้องการให้คลาส UI ของฉันเกี่ยวข้องกับเป้าหมายการทดสอบ

ในที่สุดฉันพบว่า ViewController ของฉันอยู่ในเป้าหมายการทดสอบซึ่งไม่ควรเกิดขึ้น (ฉันคิดว่าเพราะฉันสร้าง VC โดย xctemplate ดังนั้นจึงถูกรวมไว้ในเป้าหมายการทดสอบโดยอัตโนมัติ)

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

สรุป: ตรวจสอบให้แน่ใจว่าไฟล์ที่เกี่ยวข้องทั้งหมดของคุณควรยกเลิกการเลือกเป้าหมายทดสอบ


1

หลังจากใช้เวลาหนึ่งชั่วโมงกับข้อผิดพลาดนี้ฉันพบว่าไฟล์โมดูลซ้ำซ้อน ลบไฟล์พิเศษและ shift + cmd + k เพื่อล้างข้อมูลและข้อผิดพลาดจะหายไป


นี่อาจเป็นคำถามที่โง่ แต่คุณสามารถอธิบายเพิ่มเติมเกี่ยวกับสิ่งนั้นได้ไหม สิ่งนี้เกิดขึ้นกับไฟล์ swift ที่ซ้ำกันเช่นกันหรือกลุ่มที่ซ้ำกันเป็นต้น มันใช้งานได้ แต่ฉันต้องการทราบเพิ่มเติมเกี่ยวกับสาเหตุที่ใช้งานได้มากกว่าแค่ยอมรับว่าใช้งานได้ ขอบคุณสำหรับการแก้ปัญหาโดยวิธี!
โคดี้ Vollrath

1

ในกรณีของฉันมีปัญหากับการใหม่classไม่ได้รับการยอมรับ ฉันแก้ไขปัญหาโดยการลบคลาสและเพิ่มอีกครั้ง แต่คราวนี้ตรวจสอบWatch App Extensionตัวเลือกเมื่อสร้างคลาสใหม่

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

โปรดทราบว่าฉันมีส่วนขยายแอพสำหรับดูในแอปพลิเคชันของฉัน


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