Posts

Post not yet marked as solved
3 Replies
2.8k Views
I have an old iOS project that I'm updating.It uses UIAlertView a lot, which was deprecated in iOS 9, but I'm not seeing any deprecation warnings when I build the app.(I've seen warnings when updating other apps.)This is concerning me. If I'm not seeing these warnings, what other warnings am I missing?I've checked the build settings for the app and under "Apple LLVM 8.1 - Warnings - All languages" the setting for "Deprecated Functions" is set to "Yes" as it seems like it should be.I've grepped my entire project for the words "deprecate" and "warning" and "pragma" and nothing's showing up that would suppress these warnings.Does anybody have any advice for other things to check? Thanks in advance! (BTW, I'm using XCode 8.3.3 8E3004b.)
Posted
by motrek.
Last updated
.
Post marked as solved
5 Replies
880 Views
Hello! I'm using Core ML to do some machine learning predictions. It seems that I have to put the call to "predictionWithFeatures" in an autoreleasepool block, otherwise it will leak memory like crazy. (This is in a project with ARC turned off.) I need to be able to use the results of the prediction outside of the function that does the predictions. So, no problem, I just 'retain' the object that gets returned, right? Except that the autoreleasepool seems to free the object even though its retain count is 3. (Aside: why is it 3?) If anybody can tell me why the autoreleasepool block is freeing objects that have been retained, I would greatly appreciate it. Thank you! Pseudocode below... myCoreMLModelOutput *outputGlobal = NULL; void DoPredictions() { if (outputGlobal != NULL) { [outputGlobal release]; outputGlobal = NULL; } ... @autoreleasepool { // necessary to prevent predictionFromFeatures from leaking memory outputGlobal = [myCoreMLModel predictionFromFeatures ...]; [outputGlobal retain]; // need to be able to access this later printf("retain count: %d\n", (int)[outputGlobal retainCount]); // why is this 3 and not 1 or 2? } DoSomethingWithOutputGlobal(); // crashes ... why was outputGlobal released?! }
Posted
by motrek.
Last updated
.
Post not yet marked as solved
1 Replies
887 Views
Usually, when I display a UITableView (UITableViewStyleGrouped) somewhere, there's a nice strip of gray padding at the top, above the first cell in the first section. But, when displayed in a popover on an iPad, the same UITableView appears with the first cell aligned to the top edge, i.e., you can't see any gray padding. If you drag the UITableView down with your finger, you can see that the padding exists, but as soon as you let go, the UITableView snaps back so that the top cell is aligned with the top edge. Curiously, if the top section has a header string, the UITableView behaves as you would expect. Any thoughts are appreciated!
Posted
by motrek.
Last updated
.
Post not yet marked as solved
0 Replies
601 Views
I'm trying to add iCloud Drive support to one of my apps, but it looks pretty tough using Apple's APIs. I notice that on my Mac, I can access my iCloud Drive storage just like any other directory, via ~Library/Mobile Documents/com~apple~CloudDocs. Is there an Apple-supported way to just access iCloud Drive (via iOS) using standard C or C++ file IO functions? Thanks in advance!
Posted
by motrek.
Last updated
.
Post not yet marked as solved
2 Replies
512 Views
I'm working on an iPad app. The app displays a main menu via a UIModalPresentationPopover. The menu contains various text fields. The popover's source rect is located towards the bottom right corner, such that the popover's little arrow points to the right. (This is important for some reason.) When the keyboard becomes visible to edit some text, the popover does a curious animation as it slides up to get out of the way of the keyboard. It instantly resizes itself to infinitesimally small when it starts sliding up, and then expands back to its original size as it's sliding up. If I change the source rect of the popover such that the little popover arrow points down instead of to the side, it does not do this contract-then-expand animation. The app did not do this when it was built for iOS 11 (or 12?) but is now doing it when built for iOS 13. I just checked by running my old source code and it does seem to be new-for-iOS-13 weirdness. Does anybody have an explanation for this, or any idea for how to get it to stop doing this? Thanks in advance!
Posted
by motrek.
Last updated
.
Post marked as solved
3 Replies
797 Views
If I call [AVAudioPlayerNode scheduleFile] with atTime = nil, my sound plays very nicely but only after all other sounds have finished playing. This is inappropriate for the project I'm working on, I need sound effects to be able to play simultaneously. So now I'm calling scheduleFile to play a sound with atTime = mach.absolute.time(). (Underscores instead of dots.) The problem is, the beginnings of the sounds are often clipped, because presumably it takes a fraction of a second to copy the sound to the output buffer. So I guess I could add an arbitrary delay to when I want the sound to play, but that's very hacky. Is there a way to tell scheduleFile, "play the entire sound as soon as you're ready to play it, even if other sounds are playing simultaneously." Thanks in advance!
Posted
by motrek.
Last updated
.