Post

Replies

Boosts

Views

Activity

Reading multi parts of a file concurrently
I have a need to read first half and second half of a file concurrently. Is there any best practices for this scenario? BTW, I did research on DispatchIO but it turned out DispatchIO is all about asynchronous operations on a single file handle; it cannot perform parallel reading. // naive approach Task { fileHandle.read(into:buffer) } Task { // seek to file size / 2 fileHandle.read(into:buffer) }
5
0
1.1k
Jan ’24
FileManager.enumerator and URL problem
I have the following pseudo code: func load(at packageURL: URL) { let realPackageURL = packageURL.resolvingSymlinksInPath() guard let it = fileMan.enumerator(at: realPackageURL) for case let fileURL as URL in it { print(fileURL) // Get filename relative to package root directory let relativeFileName = String(filePath.suffix(filePath.count - packagePath.count)) } } When called with "file:///tmp/some.app", the enumerated fileURL is actually file:///private/tmp/GIMP.app/Contents/ packageURL.resolvingSymlinksInPath() actually does nothing, I assume /tmp is a hard link. This makes it impossible to get a correct relative path. Is there any remedy for this?
2
0
647
Jan ’24
@escaping vs @nonescaping closures
I know this is a frequently asked question, but... After reading many articles on the net, I am still not sure if I have a solid understanding of the logics behind the design. One of my puzzles around this question is - Is the Swift compiler clever enough so that I can solely rely on its warnings/errors?
1
0
786
Jan ’24
TableView.makeView question
Is it possible that I bypass tableView.makeView so that I can create a NSTableCellView on the fly (based on some logics)? func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { if NSTableColumn.identifier.rawValue == "labelColumn" { let myCellView = NSTableCellView() myCellView.textField.strinValue = "label text" return myCellView } else { let complexView = loadFromNib() // of NSTableCellView // populate complexView return complexView } }
0
0
468
Jan ’24
"zero length data" error
I had a customer feedback about a "zero length data" error which was captured using an exception handler and displayed using NSAlert. My app employs [NSURLSession dataTaskWithURL:] to download XML and image data. But I got no idea what it is about. I assume it's related to NSData, but this error never happened before (for years). Does anyone have any idea about the source of this error?
2
0
923
Feb ’24
Swift if statement with multiple conditions
I just want some experts on Swift to confirm that the following syntaxes are equivalent: if a > b, c > d { } if a > b && c > d { } I consulted "The Swift Programming Lanugage (version 5.7)" but the book does not cover this issue. But I believe it's true because my tests show they are the same.
2
0
977
Feb ’24
How change NSTableView's width using code?
I calculate cell view's width in func tableView(_ tableView: NSTableView, sizeToFitWidthOfColumn column: Int). I have a need to resize the tableview's width to just match total width of all cell views' (without scrollbars). But it seems changing tableview's width does not work: tableView.bounds.size = CGSize(width: w, height: tableView.bounds.height) I suspect that I should change its clipping view or enclosing scrollview, but don't have any idea on this. Any help?
0
0
701
Mar ’24
Any way to keep app running while keep main window hidden?
I tried many ways but it seems I just cannot get it working. // AppDelegate func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { true // false does not work either } // MainWC func windowShouldClose(_ sender: NSWindow) -> Bool { print(#function) if sender === NSApp.mainWindow { print("is main window") sender.setIsVisible(false) return false } return true } Once I hide the main window (using setIsVisible or orderOut) the app quits; even if I return false from applicationShouldTerminateAfterLastWindowClosed, NSApp.mainWindow will become nil.
1
0
786
Mar ’24
Reading multi parts of a file concurrently
I have a need to read first half and second half of a file concurrently. Is there any best practices for this scenario? BTW, I did research on DispatchIO but it turned out DispatchIO is all about asynchronous operations on a single file handle; it cannot perform parallel reading. // naive approach Task { fileHandle.read(into:buffer) } Task { // seek to file size / 2 fileHandle.read(into:buffer) }
Replies
5
Boosts
0
Views
1.1k
Activity
Jan ’24
FileManager.enumerator and URL problem
I have the following pseudo code: func load(at packageURL: URL) { let realPackageURL = packageURL.resolvingSymlinksInPath() guard let it = fileMan.enumerator(at: realPackageURL) for case let fileURL as URL in it { print(fileURL) // Get filename relative to package root directory let relativeFileName = String(filePath.suffix(filePath.count - packagePath.count)) } } When called with "file:///tmp/some.app", the enumerated fileURL is actually file:///private/tmp/GIMP.app/Contents/ packageURL.resolvingSymlinksInPath() actually does nothing, I assume /tmp is a hard link. This makes it impossible to get a correct relative path. Is there any remedy for this?
Replies
2
Boosts
0
Views
647
Activity
Jan ’24
How turn my function into async pattern
Suppose I have the following function: func doWork(_ someValue: Int, completionHandler: () -> Void) { let q = DispatchQueue() q.async { // Long time of work completionHandler() } } How do I turn it into async function so that I can call it using await doWork()? Are there guidelines/principles/practices for this purpose?
Replies
2
Boosts
0
Views
1.2k
Activity
Jan ’24
Dynamic access of unnamed tuple fields
Is there any way to get an unnamed property of a tuple given its position? Like below: let record = ("field1", "field2") func getRecordFieldValue(at: Int, of record: (String, String)) -> Any? { // pseudo code record.[at] }
Replies
2
Boosts
0
Views
928
Activity
Jan ’24
Any new URL for macappstore://itunes.apple.com/app/idxxx
I have used URL like "macappstore://itunes.apple.com/app/idxxx" in my apps for several years. Just curious to know if there is any update from this URL scheme? I believe iTunes is not app specific any more (or I am wrong).
Replies
0
Boosts
0
Views
515
Activity
Jan ’24
@escaping vs @nonescaping closures
I know this is a frequently asked question, but... After reading many articles on the net, I am still not sure if I have a solid understanding of the logics behind the design. One of my puzzles around this question is - Is the Swift compiler clever enough so that I can solely rely on its warnings/errors?
Replies
1
Boosts
0
Views
786
Activity
Jan ’24
Default value of template T
Does Swift has the syntax that lets me get the default value of a template type T, like below: struct VarLock<T> { private var v = default(T) // or T() }
Replies
2
Boosts
0
Views
728
Activity
Jan ’24
TableView.makeView question
Is it possible that I bypass tableView.makeView so that I can create a NSTableCellView on the fly (based on some logics)? func tableView(_ tableView: NSTableView, viewFor tableColumn: NSTableColumn?, row: Int) -> NSView? { if NSTableColumn.identifier.rawValue == "labelColumn" { let myCellView = NSTableCellView() myCellView.textField.strinValue = "label text" return myCellView } else { let complexView = loadFromNib() // of NSTableCellView // populate complexView return complexView } }
Replies
0
Boosts
0
Views
468
Activity
Jan ’24
"zero length data" error
I had a customer feedback about a "zero length data" error which was captured using an exception handler and displayed using NSAlert. My app employs [NSURLSession dataTaskWithURL:] to download XML and image data. But I got no idea what it is about. I assume it's related to NSData, but this error never happened before (for years). Does anyone have any idea about the source of this error?
Replies
2
Boosts
0
Views
923
Activity
Feb ’24
File name globbing in Swift
I want to check if a given string matches a file pattern. Does Swift have builtin support for filename globbing? Or is there any 3rd party packages for this?
Replies
2
Boosts
0
Views
861
Activity
Feb ’24
Where is the Web entry for app iCloud SDK
I remember long time ago I could click on a button in Xcode to launch a Web page to manage iCloud data. But now I cannot find the button.
Replies
2
Boosts
0
Views
648
Activity
Feb ’24
Swift if statement with multiple conditions
I just want some experts on Swift to confirm that the following syntaxes are equivalent: if a > b, c > d { } if a > b && c > d { } I consulted "The Swift Programming Lanugage (version 5.7)" but the book does not cover this issue. But I believe it's true because my tests show they are the same.
Replies
2
Boosts
0
Views
977
Activity
Feb ’24
Unit test environment in scheme is gone?
I use ProcessInfo.processInfo.environment["key"] to get test parameters, but all of a sudden I could not find the UI like below: In the screenshot above, the 2 environment variables were actually what I entered for the unit test target. I don't have any idea why they were moved there! Any similar problems?
Replies
2
Boosts
0
Views
1.7k
Activity
Mar ’24
How change NSTableView's width using code?
I calculate cell view's width in func tableView(_ tableView: NSTableView, sizeToFitWidthOfColumn column: Int). I have a need to resize the tableview's width to just match total width of all cell views' (without scrollbars). But it seems changing tableview's width does not work: tableView.bounds.size = CGSize(width: w, height: tableView.bounds.height) I suspect that I should change its clipping view or enclosing scrollview, but don't have any idea on this. Any help?
Replies
0
Boosts
0
Views
701
Activity
Mar ’24
Any way to keep app running while keep main window hidden?
I tried many ways but it seems I just cannot get it working. // AppDelegate func applicationShouldTerminateAfterLastWindowClosed(_ sender: NSApplication) -> Bool { true // false does not work either } // MainWC func windowShouldClose(_ sender: NSWindow) -> Bool { print(#function) if sender === NSApp.mainWindow { print("is main window") sender.setIsVisible(false) return false } return true } Once I hide the main window (using setIsVisible or orderOut) the app quits; even if I return false from applicationShouldTerminateAfterLastWindowClosed, NSApp.mainWindow will become nil.
Replies
1
Boosts
0
Views
786
Activity
Mar ’24