好吧,我正在尝试创建一个家庭类,首先我发现如果我将其放在标题后面和“ContentView”上方,它就找不到“get”和“set”。所以我把它移到了“body”,我认为你应该在视图之外创建这些类,然后在视图中调用它们以使你的代码更干净?我也不知道这个。我的主要问题是为什么我不能组建一个奥布莱恩家庭?它说“在声明之前使用局部变量'family'”,当我将它作为一个类时,我不是声明了family吗?当我尝试将 Obriens 'newVal' 分配给 0 时,我遇到的另一个错误是“实例方法声明中预期有 'func' 关键字”。有人可以向我解释一下他们的逻辑吗,因为我真的是在自己跑路,这是现在我在大学里是如何学习这些东西的。合作是最好的,至少对我来说是这样。抱歉加载了帖子,但我很困惑。
import Foundation
import SwiftUI
struct ContentView: View {
@Binding var document: lolDocument
var body: some View {
class family {
var members: Int{
var numofMems = 0
var newVal: Int
get {
return numofMems
}
set (newVal){
if newVal >= 2{
numofMems = newVal
}
else{
print("Can't have less than 2 members")
}
}
}
var Obriens = family()
Obriens(newVal: 0)
}
TextEditor(text: $document.text)
}
}
#Preview {
ContentView(document: .constant(lolDocument()))
}
我已经尝试了我所知道的方法,但无法轻易消除错误。
我认为你正在努力实现这样的目标?
类可以帮助分离更新成员时的逻辑。
class FamilyMembersManager {
private var members: Int = 0
init(members: Int) {
self.members = members
}
func getFamilyMembers() -> Int {
return members
}
func setFamilyMembers(_ newMembers: Int) {
if newMembers >= 2 {
self.members = newMembers
} else {
print("Can't have less than 2 members")
// handle case correctly
}
}
}
struct ContentView: View {
@Binding var document: lolDocument
private var Obriens = FamilyMembersManager(members: [])
var body: some View {
TextEditor(text: $document.text)
}
}
#Preview {
ContentView(document: .constant(lolDocument()))
}