簡體   English   中英

為什么 swiftUI 會為我提供正確代碼的錯誤?

[英]Why does swiftUI give me errors for correct code?

當我知道代碼是正確的時,SwiftUI 一直給我錯誤並拒絕構建。 例如,以下代碼在 15 分鍾前一直在工作。 我想換行ListJumpToBookViewVStack並添加一個Button列表下方,並開始了我的吐出的錯誤ImageBookRow 在我添加ButtonVStack之前,這段代碼正在編譯並顯示在預覽中,在我刪除它們之后,它仍然不會讓我預覽視圖。 我曾嘗試清理構建文件夾、刪除派生數據並退出應用程序,所有這些都同時進行,但仍然沒有。 沒有預覽,項目將無法編譯。 對於背景,該項目主要是 UIKit,但我正在嘗試將 SwiftUI 合並到其中,即使這無關緊要,因為此視圖未在任何地方調用。 我目前正在運行最新版本的 Xcode,並附上了我的代碼和錯誤截圖。 對於搜索,我也會在這里粘貼錯誤。 Missing argument label 'imageName:' in call Value of type 'Image' has no member 'resizable' ,並且Cannot infer contextual base in reference to member 'fit'

在此處輸入圖片說明

import SwiftUI

struct JumpToBookView: View {
    var body: some View {
        List {
            BookRow(selected: true)
            BookRow(selected: true)
            BookRow(selected: true)
            BookRow(selected: true)
            BookRow(selected: true)
            BookRow(selected: true)
        }
    }
    
    func testJump()
    {
        print("test")
    }
}

struct BookRow: View {
    var selected: Bool
    var body: some View {
        ZStack {
            Rectangle()
                .fill(Color(RaiseColor.red))
            HStack{
                Text("1.2 What is an Ecosystem?")
                    .font(.title)
                    .fontWeight(.bold)
                    .foregroundColor(Color(.white))
                Spacer()
                Image(selected ? "pauseButton" : "playButton")
                    .resizable()
                    .aspectRatio(1, contentMode: .fit)
                    .frame(maxWidth: 25)
                    .foregroundColor(Color(.white))
            }
            .padding(.all)
        }
    }
}


struct JumpToBookView_Previews: PreviewProvider {
    static var previews: some View {
        JumpToBookView()
    }
}

編輯:我只想補充一點,它之前也與RaiseColor.red一起使用,因此該自定義顏色應該沒有任何問題。

問題最終是我的代碼庫之前定義了一個名為Image的類,因此 SwiftUI 在確定我試圖引用哪個Image時遇到問題。 無需對代碼庫進行其他更改,通過將 SwiftUI 指定為Image的父級來解決此問題,這可以通過以下SwiftUI.Image(selected ? "pauseButton" : "playButton")" 。這解決了所有問題我有,但最好的辦法是重構你的代碼庫,以免與 SwiftUI 類和結構有沖突的名稱。

當我更換這個

Rectangle() .fill(Color(RaiseColor.red))

有了這個

Rectangle()
    .fill(Color.red)

一切都編譯得很好......所以在那個自定義顏色中尋找錯誤。

我的問題是我將一個意圖定義枚舉命名為 Color。 我重命名了它,它再次正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM