簡體   English   中英

無法將“Void”類型的值轉換為預期的參數類型“(String) -> Void”

[英]Cannot convert value of type 'Void' to expected argument type '(String) -> Void'

我正在編寫一個應用程序時出現此錯誤: Cannot convert value of type 'Void' to expected argument type '(String) -> Void'

function 是:

func updateSymbolsPadding(symbolType: String, symbolSize:inout Double) -> Void {
        var size: Double
        if symbolType=="multiply" {
            size = 2.4
        } else if symbolType=="circle" {
            size = 2.0
        } else if symbolType=="triangle" {
            size = 2.0
        } else if symbolType=="square" {
            size = 2.0
        } else if symbolType=="pentagon" {
            size = 2.0
        } else if symbolType=="octagon" {
            size = 2.0
        }
        symbolSize = size
    }

我在一個選擇器中把它叫回來:

Picker("symbol one", selection: $symbolOne, content: {
                        Image(systemName: "multiply")
                            .tag("multiply")
                        Image(systemName: "circle")
                            .tag("circle")
                        Image(systemName: "triangle")
                            .tag("triangle")
                        Image(systemName: "square")
                            .tag("square")
                        Image(systemName: "pentagon")
                            .tag("pentagon")
                        Image(systemName: "octagon")
                            .tag("octagon")
                    })
                    .onChange(of: symbolOne, perform: updateSymbolsPadding(symbolType: symbolOne, symbolSize: &symbolOneSize))

變量是:

@Binding var symbolOne: String
@Binding var symbolOneSize: Double

我該如何解決這個問題?

正如 Ptit Xav 所說:執行參數必須是一個閉包,而不是 function 調用的結果。

代替

            .onChange(of: symbolOne, perform: updateSymbolsPadding(symbolType: symbolOne, symbolSize: &symbolOneSize))

    .onChange(of: symbolOne) { symbolOne in
        updateSymbolsPadding(symbolType: symbolOne, symbolSize: &symbolOneSize)
    }

暫無
暫無

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

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