[英]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 View
的body
塊內工作時,您處於一個稱為ViewBuilder
的特殊環境中。 在該環境中,每個表達式都應返回某種View
。 編譯器以一種特殊的方式收集它們,並將它們組合在一起形成一個用戶界面。 (該環境還允許您使用一些控制流結構,例如經過特殊處理的if
語句。如果您真的很好奇,可以搜索 web 以獲取有關 Swift Result Builders 的信息)
在您的情況下,您在 Swift 期望每個表達式返回一個視圖而 Swift 抱怨的地方包含了一個不返回View
的表達式。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.