Post

Replies

Boosts

Views

Activity

Reply to I get this Issue : ContentView.swift:3016:25 The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions. But I don´t know what I have to do. I am a noob. Can anybody help me.
Welcome to the forum. But your post is really badly written: When you post code, use code formatter to make your code readable. avoid duplicating the post provide all structure definitions, otherwise impossible to test and investigate. make sure the code you post does compile: What are: OrderItem MenuCategory etc Your code compile with those error. What di you post ? Real code ? An edited version (bad idea): @Environment(.dismiss) private var dismiss It should be @Environment(\.dismiss) private var dismiss This as well if MenuCategory is a type definition and not a var ForEach(MenuCategory) { category in struct OrderRow: View is declared twice
Nov ’24
Reply to Limiting the Number of Bool (True) Values
If I understand well, you want to allow a max of 2 checked on. And nothing should happen if trying to check a third (except maybe an error message). Here is how I did this: struct ContentView: View { @State private var viewModel = ContentViewModel() @State var allowMoreChecks = true // <<-- ADDED var body: some View { VStack(alignment: .leading) { List { ForEach(viewModel.models, id: \.id) { model in CheckButtonView(id: model.id, text: model.name, isOn: model.isOn, moreAllowed: allowMoreChecks) { id, bool in updateDate(id: id, bool: bool) // <<-- ADDED moreAllowed } } } } } func updateDate(id: String, bool: Bool) { for i in 0..<viewModel.models.count { let oldModel = viewModel.models[i] if oldModel.id == id { let newModel = Content(id: oldModel.id, name: oldModel.name, isOn: bool) viewModel.models.remove(at: i) viewModel.models.insert(newModel, at: i) break } } var count = 0 for i in 0..<viewModel.models.count { let model = viewModel.models[i] if model.isOn { count += 1 } } allowMoreChecks = count < 2 // <<-- ADDED } } struct CheckButtonView: View { let id: String let text: String @State var isOn: Bool var moreAllowed : Bool // <<-- ADDED var callBack: (String, Bool) -> Void var body: some View { HStack { Button { if !moreAllowed && !isOn {. // <<-- ADDED print("not authorized") } else { isOn.toggle() callBack(id, isOn) } } label: { Image(systemName: isOn ? "checkmark.square.fill" : "square") .resizable() .aspectRatio(contentMode: .fit) .frame(width: 18) .tint(!isOn ? .black : .blue) } Text(text) .font(.subheadline) Spacer() } .frame(maxWidth: .infinity) } } struct Content { let id: String let name: String let isOn: Bool } class ContentViewModel: ObservableObject { @Published var models = [Content]() @Published var canChange = true init() { models = [ Content(id: UUID().uuidString, name: "Jim", isOn: false), Content(id: UUID().uuidString, name: "Jenny", isOn: false), Content(id: UUID().uuidString, name: "Nancy", isOn: false), Content(id: UUID().uuidString, name: "Natalie", isOn: false) ] } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Nov ’24
Reply to 4.3 A Spam Design
So, the previous app is no more available on the appstore ? Did the previous company provide to the new company an official letter certifying they have transferred all the rights on the app ? That could be a first step to try to prove reviewers that it is not a spam. But not sure it would be enough. Anyway, you could try.
Nov ’24
Reply to I get this Issue : ContentView.swift:3016:25 The compiler is unable to type-check this expression in reasonable time; try breaking up the expression into distinct sub-expressions. But I don´t know what I have to do. I am a noob. Can anybody help me.
Welcome to the forum. But your post is really badly written: When you post code, use code formatter to make your code readable. avoid duplicating the post provide all structure definitions, otherwise impossible to test and investigate. make sure the code you post does compile: What are: OrderItem MenuCategory etc Your code compile with those error. What di you post ? Real code ? An edited version (bad idea): @Environment(.dismiss) private var dismiss It should be @Environment(\.dismiss) private var dismiss This as well if MenuCategory is a type definition and not a var ForEach(MenuCategory) { category in struct OrderRow: View is declared twice
Replies
Boosts
Views
Activity
Nov ’24
Reply to Limiting the Number of Bool (True) Values
If I understand well, you want to allow a max of 2 checked on. And nothing should happen if trying to check a third (except maybe an error message). Here is how I did this: struct ContentView: View { @State private var viewModel = ContentViewModel() @State var allowMoreChecks = true // <<-- ADDED var body: some View { VStack(alignment: .leading) { List { ForEach(viewModel.models, id: \.id) { model in CheckButtonView(id: model.id, text: model.name, isOn: model.isOn, moreAllowed: allowMoreChecks) { id, bool in updateDate(id: id, bool: bool) // <<-- ADDED moreAllowed } } } } } func updateDate(id: String, bool: Bool) { for i in 0..<viewModel.models.count { let oldModel = viewModel.models[i] if oldModel.id == id { let newModel = Content(id: oldModel.id, name: oldModel.name, isOn: bool) viewModel.models.remove(at: i) viewModel.models.insert(newModel, at: i) break } } var count = 0 for i in 0..<viewModel.models.count { let model = viewModel.models[i] if model.isOn { count += 1 } } allowMoreChecks = count < 2 // <<-- ADDED } } struct CheckButtonView: View { let id: String let text: String @State var isOn: Bool var moreAllowed : Bool // <<-- ADDED var callBack: (String, Bool) -> Void var body: some View { HStack { Button { if !moreAllowed && !isOn {. // <<-- ADDED print("not authorized") } else { isOn.toggle() callBack(id, isOn) } } label: { Image(systemName: isOn ? "checkmark.square.fill" : "square") .resizable() .aspectRatio(contentMode: .fit) .frame(width: 18) .tint(!isOn ? .black : .blue) } Text(text) .font(.subheadline) Spacer() } .frame(maxWidth: .infinity) } } struct Content { let id: String let name: String let isOn: Bool } class ContentViewModel: ObservableObject { @Published var models = [Content]() @Published var canChange = true init() { models = [ Content(id: UUID().uuidString, name: "Jim", isOn: false), Content(id: UUID().uuidString, name: "Jenny", isOn: false), Content(id: UUID().uuidString, name: "Nancy", isOn: false), Content(id: UUID().uuidString, name: "Natalie", isOn: false) ] } }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Replies
Boosts
Views
Activity
Nov ’24
Reply to 4.3 A Spam Design
So, the previous app is no more available on the appstore ? Did the previous company provide to the new company an official letter certifying they have transferred all the rights on the app ? That could be a first step to try to prove reviewers that it is not a spam. But not sure it would be enough. Anyway, you could try.
Replies
Boosts
Views
Activity
Nov ’24
Reply to nomor wa bws mobile adalah 083193926887
Surprising to see those automatic answers from App Store Connect Engineer. Really out of purpose. Looks like Apple intelligence does not apply yet to the forum 😉
Replies
Boosts
Views
Activity
Nov ’24