Post

Replies

Boosts

Views

Activity

Reply to SwiftU Document-based app error: "The document could not be opened"
I'm guessing, but this sounds like a sandboxing issue. In order to create a new file, you need to have the com.apple.security.files.user-selected.read-write entitlement set to true. But a file chosen programmatically by a Recents menu isn't user-selected. If your Recents logic is storing a path to a file outside of your app's bundle or its own, sandboxed Documents folder, your program won't be able to open that file. If you store your recents as security-scoped bookmarks, it should work.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
May ’23
Reply to Trailing closure passed to parameter of type 'FormStyleConfiguration' that does not accept a closure
the problem appears to lie with the second parameter you pass to the TextField view builder. You must have a var user somewhere - what kind of object is user, and does it really have a property called user inside it? I'm using the @State wrapper because it is convenient for state variables which outlive the ContentView itself, but it often isn't useful in a real application. An instance of your User struct will normally live in your data model. I can get your code to compile if I write the following. Note there is more than one way to put an Int into a TextField. struct User: Codable { var firstName: String var lastName: String var isAdmin: Bool var storeNumber: Int var teamMemberNumber: Int var userApproved: Bool var userCreated: Bool } struct ContentView: View { @State private var user = User(firstName: "first", lastName: "lastName", isAdmin: false, storeNumber: 24, teamMemberNumber: 42, userApproved: false, userCreated: false) var body: some View { Form { Section(header: Text("Employee Name")) { Text(user.firstName) TextField("First Name", text: $user.firstName) TextField("Last Name", text: $user.lastName) } Section(header: Text("Employee and Store Info")) { TextField("Store Number", value: $user.storeNumber, formatter: NumberFormatter()) .keyboardType(.numberPad) TextField("Team Member Number", value: $user.teamMemberNumber, formatter: NumberFormatter()) } } } } and I can reproduce your error by replacing the last line with this one TextField("Team Member Number", text: Int($user.user?.teamMemberNumber)) the TextField expect to the text: parameter to be a binding to String, not an Int. Instead of complaining about that, the compiler complains about the Form declaration. The usual initializer for Form is this one public init(@ViewBuilder content: () -> Content) while an extension on Form defines this one public init(_ configuration: FormStyleConfiguration) The parameter to init which you write after Form might be a View builder, and might be a FormStyleConfiguration. If the expression is malformed, the compiler has to make a guess about what you meant to write, here it guessed wrong, gives you a misleading error message and doesn't point out the real source of the error (the declaration of TextField a text: parameter which is mismatched). The compiler does keep getting better at pointing out errors. If you file a bug on this Apple might fix it.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Apr ’23
Reply to MAC address
iOS 7 release notes are archived here https://developer.apple.com/library/archive/releasenotes/General/WhatsNewIniOS/Articles/iOS7.html#//apple_ref/doc/uid/TP40013162-SW1 search for "MAC address" on that page
Topic: App & System Services SubTopic: Core OS Tags:
Apr ’23
Reply to Trailing closure passed to parameter of type 'FormStyleConfiguration' that does not accept a closure
what code do you have a problem with? The unformatted code, or the code in the code block? The unformatted code works for me, but I had to replace $user.user?.firstName ?? "" with $firstName, where I declared a @State private var firstName = "Joe", and similarly for lastName. The formatted code shouldn't compile, because Int() returns an Int, while ``TextField's text: parameter should be a Binding<String> Try simplifying your code to something you can post as a complete sample. That alone may lead you to a solution. If it doesn't, post the complete sample here and indicate clearly what is not working (you said "in the title on the following form", but there is no "title" field). Also mention what platform (macOS, iOS etc) you are targeting, and what Xcode version you are using.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Apr ’23
Reply to Unexpected Error
someone will be able to help you if you post the code itself, rather than a screenshot of a fragment of it (format it as code so it is readable). It seems that you wrote an init() function that does nothing. In the struct or class which you are initializing, there are properties declared like this: var whatever: String or var somethingElse: Float for example Either declare them with initial values var whatever = "Hello" var somethingElse = 1.0 or give them values in your init(), perhaps like this init() { whatever = "goodbye" somethingElse = someThingComplicatedThatReturnsAFloat() }
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Apr ’23
Reply to Overlaid items hide behind neighbouring views
I played around a bit with zIndex. It applies to the rendering order within one View, it isn't global. It would be Really Hard to make a system where it is global - you can't predict what other Views are using for their zIndex values. Normally the rendering order is dictated by the order of appearance in the View's description. I can only see an application for zIndex if you are parameterizing the rendering order. If the zIndex is a constant you may as well just write the View's description in a different order.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Mar ’23
Reply to Overlaid items hide behind neighbouring views
the code in your body is executed in the order you write it. Your first ForEach draws each row from the top downwards. Each row contains a TileView (a brown or yellow square) and a pieceView, which may draw nothing at all, but if it draws something, it is an overlay drawn below the tile (if the offset is negative). The next row you draw will draw over that overlay. To fix this, make the content something like this ZStack { BoardView() PiecesView() } The BoardView doesn't change as your chess game changes. The PiecesView would be dependent on the model of the chess game as it progresses. If it were me, I'd iterate through all the pieces in the game, and draw them at their respective x,y offsets. Your pieceView function looks up a pieceView based on the current co-ordinate on the board, but it does so at a different co-ordinate for each square, then applies an offset from that square when drawing the overlay. I think I'd prefer to be drawing at an offset from a fixed location, like the bottom left of the board.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Mar ’23
Reply to Xcode preview crashing
this is really late but I got here because my previews are crashing (for some other reason) The reason this one is crashing is because the second call to padding is missing the period before it. So padding() is simply a call to the padding() function on ContentView, which causes infinite recursion. The .padding() modifier should be applied to the second HStack.
Mar ’23
Reply to Incorrect value in decibel measurement AVFoundation
what values are you comparing? The var decibels returned by audioRecorder.peakPower, or your own self.decibels? The value returned by AVAudioRecorder is already in units of dB. It is a relative power, not amplitude measurement. So if you expect your noise to be at 80dB below full scale, its power is at 40dB below full scale. So you might expect decibels to have a value of around -40. I don't think you should be converting twice. Also, you're using the a dB conversion formula appropriate for amplitude, not power. pow(10, (-40/20)) is equal to 0.01, which is of the order of magnitude you are seeing. Your other measurements (20dB "silence", 50dB "noise") appear to be amplitude measurements relative to some stable (low) level.
Topic: UI Frameworks SubTopic: SwiftUI Tags:
Mar ’23