2016-09-09 168 views
2

的Xcode 8和斯威夫特3讓我真的很傷心今天:(無法將類型的「X」預期參數類型值「X」

請看看,並告訴我,如果你曾經有過這樣的事情,如果。它可以修復它,我一直在嘗試不同的解決方案,其中包括:

  1. 爲Cmd + Shift + K
  2. 爲Cmd + Shift +期權+ K
  3. 刪除導出的數據
  4. 更改使用結構(這是一個嵌套的st在我的代碼構作),扁平的,變化非常基本的一個

Sad Xcode error

更新1:

下面的代碼(雖然我認爲這是沒有必然的關係我的執行問題),這是在我的測試目標:

let viewModelStub: Quiz.NewRoundDetails.ViewModel = Quiz.NewRoundDetails.ViewModel(roundNumber: "", score: "", proposedAnswerParts: [ 
      Quiz.NewRoundDetails.ViewModel.AnswersForComponent(answers: []), 
      Quiz.NewRoundDetails.ViewModel.AnswersForComponent(answers: []), 
      Quiz.NewRoundDetails.ViewModel.AnswersForComponent(answers: [])]) 

_ = viewController.view 
viewController.display(roundModel: viewModelStub) 

這裏有結構:

struct Quiz { 
    struct NewRoundDetails { 
     struct Response { 
      let roundNumber: Int 
      let score: Int 
     } 
     struct ViewModel { 
      let roundNumber: String 
      let score: String 
      let proposedAnswerParts: [Quiz.NewRoundDetails.ViewModel.AnswersForComponent] 

      struct AnswersForComponent { 
       let answers: [String] 
      } 
     } 
    } 
} 

而在事情的viewController是這樣的:

func display(roundModel: Quiz.NewRoundDetails.ViewModel) { 
    ... 
} 

並非不同尋常,我認爲。我剛剛發現了一件事 - 代碼在應用程序目標端正常工作,它不適用於測試目標。

我沒有更多想法atm ...你能幫助我嗎?我創建了雷達以及

+0

請將您的相關代碼作爲文本發佈,而不是截圖。那麼viewModelStub是如何定義的? –

+0

讓我更新我的問題@CodeDifferent –

+0

這裏是@CodeDifferent –

回答

2

好吧,我知道了......

我已經導入我的應用程序的模塊@testable還我已經加入模型類的測試目標我.swift文件。也許<MyTestModule>. Quiz.NewRoundDetails.ViewModel已創建的<MyAppModule>. Quiz.NewRoundDetails.ViewModel

+0

謝謝你downvoting,無論原因......它顯然解決了這個問題。我會在這裏留下答案,以防萬一有人會遇到類似的問題 –

+0

很高興您找到了解決您自己問題的方案 –

+0

謝謝。我有確切的問題。 –

7

檢查這個答案,而不是:Stack Overflow

這可能與目標的問題。如果您在測試文件的頂部使用@testable關鍵字,並且您的主項目文件也將您的測試作爲目標,那麼測試指的是兩個不同的文件。因此,您的文件應該只針對測試(如果它們是測試文件)或主項目。如果他們都選中了取消選中的項並在測試文件的頂部使用@testable import [您的項目名稱]。 enter image description here

相關問題