簡體   English   中英

嘗試使用 + swiftUI 分配變量

[英]Trying to assign variable using + swiftUI

我正在創建一個數學應用程序,並試圖將正確答案分配給一個變量。 我在下面嘗試了這兩個選項

@State private var correctAnswer1: Int {
        number1L1 + number2L1
    }

有了這個,我收到錯誤“屬性包裝器不能應用於計算屬性”。

 if currentLevel == 1
            {
                Text("   \(number1L1)")
                    .font(.system(size:70))
                Text("+ \(number2L1)")
                    .font(.system(size:70))
                Text("____")
                    .font(.system(size:70))

               correctAnswer = number1L1 + number2L1
                
            }

有了這個我收到錯誤“Type () cannot conform to 'View'”

如何在不出錯的情況下分配此變量?

你真的有兩個問題。 在第一種情況下,您有一個屬性是計算屬性。

private var correctAnswer1: Int {
        number1L1 + number2L1
    }

表示每次您請求yourObject.correctAnswer1時,系統都應該通過運行代碼塊中的代碼來計算它的值。

相比之下, @State的屬性是一個包含單個值的框。 你沒有單一的價值,你有計算價值的機制。 編譯器抱怨。

在第二種情況下,您正在布置View

當您在 SwiftUI Viewbody塊內工作時,您處於一個稱為ViewBuilder的特殊環境中。 在該環境中,每個表達式都應返回某種View 編譯器以一種特殊的方式收集它們,並將它們組合在一起形成一個用戶界面。 (該環境還允許您使用一些控制流結構,例如經過特殊處理的if語句。如果您真的很好奇,可以搜索 web 以獲取有關 Swift Result Builders 的信息)

在您的情況下,您在 Swift 期望每個表達式返回一個視圖而 Swift 抱怨的地方包含了一個不返回View的表達式。

暫無
暫無

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

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