Post

Replies

Boosts

Views

Activity

Working code that uses "rtsp" seems to have broken recently
We had working code a few years ago, for a seldom used feature (streaming the camera image from a VIRB 360 camera). Trying to get it working again, but when I use a URLSession Data task to try and connect to this URL: rtsp://192.168.0.1/livePreviewStream?maxResolutionVertical=0 I get an error: Code=-1002 "unsupported URL" I vaguely remember trying to add permissions in the Info.plist for the local network, but it turned out for "http" we didn't need .t (so it got removed). But now I can't find a reference to it. Does the above error code look like its related to permissions? If not what? Thanks for any pointers! David
2
0
1.5k
Nov ’21
Bonjour stopped responding in iOS15
My company's app uses the following code to look for services advertised by a Garmin VIRB 360 camera (now discontinued and unsupported). In the past this code has worked fine. However, on my iPhone 12 Pro Max running iOS 15.0.2 it returns no services. let serviceBrowser = NetServiceBrowser() serviceBrowser.searchForServices(ofType: "_garmin-virb._tcp.", inDomain: "local.") Did something change in iOS 15? Do I need some entitlement? Is the format of the strings incorrect? My recollection is that the strings are from Garmin document (but its years old). Any help greatly appreciated!
3
0
1.1k
Oct ’21
Why doesn't Big Sur Terminal set environmental variables?
I found that COLUMNS is no longer set, and it caused issues using vi edit mode in the shell. I found nothing in Apple's docs about environmental variables, but did find this online: https:// + ss64.com + /osx/syntax-env_vars.html which lists a slew of variables, most of which I don't see. I don't see any option in Preferences to enable or disable this. HELP!
0
0
885
Apr ’21
Is this crash related to UIView.animate...?
I'm getting occasional crashes with the following on a background thread: 0 __exceptionPreprocess + 224 1 objc_exception_throw + 52 2 _AssertAutolayoutOnAllowedThreadsOnly + 416 3 -[NSISEngine withBehaviors:performModifications:] + 28 4 -[UIView(UIConstraintBasedLayout) _resetLayoutEngineHostConstraints] + 72 5 -[UIView(CALayerDelegate) layoutSublayersOfLayer:] + 1948 6 -[CALayer layoutSublayers] + 280 7 CA::Layer::layout_if_needed(CA::Transaction*) + 464 8 CA::Layer::layout_and_display_if_needed(CA::Transaction*) + 136 9 CA::Context::commit_transaction(CA::Transaction*, double) + 292 10 CA::Transaction::commit() + 672 11 CA::Transaction::release_thread(void*) + 224 12 _pthread_tsd_cleanup + 576 13 _pthread_exit + 76 14 _pthread_wqthread_exit + 92 15 _pthread_wqthread + 412 16 start_wqthread + 4 Of course no idea what actual class was doing what. I'm trying to focus on where this could be, and it would seem "CA::Transaction::commit()" points to some kind of animation block. But, if the view uses constraint based layout, could it be anything?
0
0
1.1k
Sep ’20
Please clarify Combine Demand usage
Combine has two related functions that support "demand", where Subscribers inform Publishers on the desired number of elements passed to them in a "receive" function. The below ignores infinite demand.1) func request(_ demand: Subscribers.Demand)Subscriptions provide this function, and as the Apple Docs say:"Tells a publisher that it may send more values to the subscriber."Matt Gallagher supposes in his excellent 22 Combine Tests article that each of these demands should be additive, and when the Subscription sends elements to the Subscriber, it decrements the count.2) func receive(_ input: Self.Input) -> Subscribers.DemandWhen a Subscriber receives data, it returns another demand, which the Apple docs state is:"A Subscribers.Demand instance indicating how many more elements the subscriber expects to receive."I have seen various interpretations on how these numbers relate, and I of course have my own that I'll postulate here.---A Publisher has a one element, and it gets a 'request(.max(10))' When it sends that to the Subscriber, and the return demand should be '.max(9)', a reminder to the Publisher (actually a Subscription created by the Publisher) that its expecting 9 more elements.If for some reason the Subscriber decides to send in another request for .max(10), and the Publisher gets one more element, and messages the Subscriber with that one element, the return will then be .max(18), meaning, Subscriber wanted 10, then it wanted 10 more, but it has only received 2.Alternate interpretations seem to be that the return from receive is additive to the running total. So any number other than 0 will increase what the Publisher can send.Would be super if anyone in the know could help clarify!!!
5
0
2.5k
Apr ’20
xcframework: how to wrap a static library?
This topic was touched on in the notes for the WWDC 2019 session on Binary Frameworks - I even watched the whole video but it wasn't covered there.It appears I should be able to wrap a static library - one that is created by its own (complex) build scripts - and have iOS, iOS Simulator and macOS versions. Also, that the header files can be included as well.I have been unable to find any information googling around on how one might do this. I would greatly appreciate any pointers to some blog/post that covers this.Thanks!
9
1
15k
Mar ’20
NWPathMonitor fails to report WIFI coming back if cellular is on
Feedback FB7556677This is my code:private lazy var pmC = NWPathMonitor(requiredInterfaceType: .cellular) private lazy var pmW = NWPathMonitor(requiredInterfaceType: .wifi) pmC.pathUpdateHandler = { (path: NWPath) in print("C PATH STATUS:", path.status) path.availableInterfaces.forEach( { interfce in DispatchQueue.main.async { print(" C INTERFACE:", interfce, "Status:", path.status) } } ) } pmC.start(queue: assetQueue) pmW.pathUpdateHandler = { (path: NWPath) in print("W PATH STATUS:", path.status) path.availableInterfaces.forEach( { interfce in DispatchQueue.main.async { print(" W INTERFACE:", interfce, "Status:", path.status) } } ) } pmW.start(queue: assetQueue)Do a test. Lauch with both cellular and wifi on. Works as expected. Turn WIFI off, works again. Turn WIFI back on - nothing. So as far as I know, I've only got an "expensive network" available, even though WIFI is on and I can use it in Safari.Console Log:// WIFI and CELLULAR ON, launch C PATH STATUS: satisfied W PATH STATUS: satisfied C INTERFACE: pdp_ip0 Status: satisfied W INTERFACE: en0 Status: satisfied // Turn Cell off C PATH STATUS: unsatisfied // Turn WIFI off W PATH STATUS: unsatisfied // Turn Cell on C PATH STATUS: satisfied C INTERFACE: pdp_ip0 Status: satisfied C PATH STATUS: satisfied C INTERFACE: pdp_ip0 Status: satisfied C PATH STATUS: satisfied C INTERFACE: pdp_ip0 Status: satisfied // WIFI on ... nothingEven switched to Safari, opened a web page, then switched back. Nothing after many minutes.Note: iOS 13.3 iPhone 6s+ I tried and tried to get a sysdiagnose - volume buttons and power button for 1+ seconds, nothing happens.
1
0
1.3k
Jan ’20
Stuck on CGDataProviderCreateWithData
What I'd like to do is provide a CVPixelBuffer as the dataInfo argument to CGDataProviderCreateWithData that has an initializer:init?(dataInfo info: UnsafeMutableRawPointer?, data: UnsafeRawPointer, size: Int, releaseData: @escaping CGDataProviderReleaseDataCallback)My best (and probably wrong) approach to convert to a UnsafeRawPointer is:let pixelBuffer: CVPixelBuffer ... let ptr: UnsafeMutableRawPointer = UnsafeMutableRawPointer(mutating: &pixelBuffer)However, the releaseData callback function is defined as:typealias CGDataProviderReleaseDataCallback = (UnsafeMutableRawPointer?, UnsafeRawPointer, Int) -> VoidI cannot think of any way to get the CVPixelBuffer back from the UnsafeMutableRawPointer. Clearly I need help!
7
0
3.7k
Jun ’17
WeakSelf/StrongSelf dance: __strong needed?
I read today in the Swift book:__weak typeof(self) weakSelf = self; self.block = ^{ __strong typeof(self) strongSelf = weakSelf; [strongSelf doSomething]; } // Excerpt From: Apple Inc. “Using Swift with Cocoa and Objective-C (Swift 3.1).”When I saw '__strong' I got a bit concerned - in the past I had always used "typeof(self) strongSelf = weakSelf;, think the typeof made strongSelf strong.Yikes! Did I get it wrong all these years???
2
0
3.1k
Apr ’17
"private lazy var ..." thread safe?
Just had a weird crash in development in Simulator - first of a kind. The crash was on this line:private lazy var regExTrimSet = NSCharacterSet(charactersInString: " \t\r\n_")and the error was some malloc() already released (grrr, should have copied it). Should that be thread safe? [Its being referenced by a bunch of concurrent blocks at one point]Also, I tried to find out where the Xcode console log might get written, but had no luck finding a link. Is there one that this error should be logged to?
6
0
4.9k
Oct ’15