After seveal years with Swift, I still find it hard to use the if case let or while case let, even worse with opotional pattern if case let x?.So, I would like to find an expression to "speak" case let more naturally.Presently, to be sure of what I do, I have to menatlly replace the if case by the full switch statement, with a single case and default ; pretty tedious.I thought of canMatch or canMatchUnwrap … with:So, following would readif case let x = y { // if canMatch x with yif case let x? = someOptional { // if canMatchUnwrap x with someOptionalwhile case let next? = node.next { // while canMatchUnwrap next with node.nextAm I the only one with such problem ? Have you found a better way ?
Selecting any option will automatically load the page
Post
Replies
Boosts
Views
Activity
I have an image to fill the entire screen, even behind the notch.
So I set the Top margin to safe area to -44.
That works OH on all iPhones… except on iPhone 12 ProMax simulator.
Here I get a few pixels uncovered at top.
I had to change value to -48 to get everything OK.
So question is: has "notch area" which defines safe area increased 4 pixels on iPhone 12 Pro max ? If so, is it a hardware change ?
Using AVSpeechSynthesizer, I noticed that some works in UPPERCASe are not correctly spoken.
SMALL is pronounced small
but WIDTH is pronounced W-I-D-T-H
I reproduced the problem in playground:
let sentence = "Hello everyone. Two minutes to go. SMALL WIDTH." let synthesizer = AVSpeechSynthesizer()
let utterance = AVSpeechUtterance(string: sentence)
utterance.voice = AVSpeechSynthesisVoice(
	language: "en-GB"
)
utterance.rate = AVSpeechUtteranceDefaultSpeechRate * 1.05
synthesizer.speak(utterance)
Is it the expected behaviour ?
I consider the following distribution scheme for some Mac App: distribute the commercial (paying) version on Appstore
propose a free demo version (of course limited in some aspects) on a web site. This would of course be notarised.
The reason is to avoid having several versions on the Appstore which could create some confusion. The 2 versions would have similar names and differ essentially in the size of data they can handle.
Does anyone know if this is authorised by the Appstore Guidelines ? Or must I publish both on the AppStore ? Is there a risk my app being rejected as spam ?
In a MacOS App: When I create a file (in a folder), I save a security bookmark for the file.
if I ask user to authorise its folder (before creating the file in it), I can save its bookmark too, allowing to create other files in this folder.
So, when I create a file and need to create a companion (eg, a Results file), I first ask access to the folder, then create the file and create the results file in the same folder (hence having sandbox authorisation).
My understanding is that it is not possible to programmatically create and save the folder bookmark, after deriving its url from the file url, without requesting user to explicitly grant access (with NSOpen panel) ? Which would be very logical as it would deny the goal of security bookmarks.
So, is user explicit authorisation required (logical but creates more complexity when user moves files in the Finder).
Note: In fact don't really need it, as I save bookmark for every accessed file, but I would like to know.
We have been waiting for this for many years.
And the icon is there, at the right most
That's a GREAT plus for the forum.
In this app, I have:
a VC as entry point (root)
which segues (push) to a SplitViewController
On iPad, when I get into the splitView, I can get back to the root by dragging down the split view.
But on iPhone, this does not work: even though presentation is .automatic, Splitview covers all screen. No way to get back.
I tried to create a back button in the detail views…
Could not get it.
What is the best way to do this ?
is there a setup for the initial segue or the views presentation modes to allow pop back ?
can I add a back button ? Where, calling what action to return ?
I cannot embed splitViewController in nav stack …
I would like to have the same solution on both iPhone and iPad…
How to reorder a pdf document?
move page p after page n, or at a given m position.
add new page at certain position
rotate a page 90° or 180°.
I've seen libraries, but I would prefer to redevelop those simple functions directly in an iOS app (Swift).
I don't need to edit the document content, just rearrange.
UISegmented controls seem not to work correctly in iPhone 13 Mini simulator. When tapping on a segment, control does not react before 30 to 40 s ; then it shows uncomplete redraw:
I also noted similar lag in updating display when some label text changes.
Configuration:
MacOS 11.6.1
Xcode 13RC
iOS 15.0 simulator.
It works ok on a few other simulators I tested.
I created an extremely simple project to reproduce:
new project in Xcode 13RC
added a segmentedControl at bottom of view, constrained to leading and trailing 0 to the safe area
set selected color to red.
run on iPhone 13 mini simulator
I will test later with Xcode 13.2ß
The following code opens the app settings, including preferred language.
func openSettings() {
guard let settingsUrl = URL(string: UIApplication.openSettingsURLString) else {
return
}
if UIApplication.shared.canOpenURL(settingsUrl) {
UIApplication.shared.open(settingsUrl, completionHandler: nil)
}
}
That works well in iOS (14.6 or 15.2), on iPadOS 14.4 ( both device and simulator)
But on iPadOS 15.2 simulator, the preferred language setting for the app does not show.
I noticed this in 2 different apps.
I get this weird behaviour of Xcode.
Version 13.2.1 or 13.2 RC (may be other).
In the storyboard I had a UITableViewController. As it does not give any flexibility to add other views in the VC, I created a new UIViewController, recreated the tableView inside as well as some other objects, added the new views I needed, redid all connections.
Then I removed the UITableViewController.
Everything works perfectly fine.
But sometimes (cannot find any pattern for the cases), when opening the project, the old UITableViewController appears in Storyboard. The new UIViewController doesn't even seem to be here. When I select different VC in SB, no information in Identity inspector or other inspector.
But it compiles and runs OK, using the new UIViewController.
I cleaned build folder, closed Xcode, reboot the Mac, to no avail.
Only way to get it solved was to close the SB and reopen it…
Is there a cache somewhere in SB that is not cleared ?
Is there a difference in the distribution of results between those 2 forms ?
let x = (1...9).randomElement()!
let y = Int.random(in: 1...9)
In doc, I never see the first form used
I installed Xcode 14.2 (in parallel with other versions of Xcode with different names) on MBP MacOS 12.6.2.
Il works OK except when trying to use WatchOS simulator.
When I select a WatchOS target and then look for simulator, none is installed. I get an item in menu proposing to GET 9.1.
I downloaded.
But at the end of download, installation failed with the message that installation of watchOS 9.1 simulator runtime failed in CoreSimulator.
I tried the solution proposed here, to no avail.
https://stackoverflow.com/questions/74096242/unable-to-select-device-for-watchos-app-in-xcode
Note: installation on an iMac running 12.6.2 and Xcode 14.2 shows a long list of simulators:
How do we switch on/off the display of lines at top of a window.
It should be in Preferences, but I cannot find it.
After more than 2 years of intense use of SwiftUI I appreciate many of its features, particularly the speed at which I can get some code running.
But, there are some major buts …
Screen Position,
I keep struggling with try, test, error and retry to position views relative to each others, withy many iterations to tune the x and y parameters. And preview does not help when view is too complex: I find it more reliable to test in simulator.
At the end, my code is messed with .position, .offset, … that I manually adjusted but may break if I change something elsewhere in the body.
The fact that position is relative to center of view (different from UIKit) makes it even more mind boggling.
For sure, UIKit constraints were not so easy, but you got a very stable code. That's not the case with SwiftUI
z position
In some cases, I want the View to appear on front of all others.
It may be a very simple Rectangle() with overlay, e.g., to mimic an alert.
And I struggle with the Rectangle drawn behind another view, even trying to adjust the zIndex to no avail…
Should I create an explicit View instead of creating the Rectangle directly in the body ?
So am I misusing SwiftUI, or are they points that SwiftUI should improve in the future ?