Post

Replies

Boosts

Views

Activity

Reply to Function declares an opaque return type, but the return statements in its body do not have matching underlying types
AnyView works, but I think a @ViewBuilder is nicer. https://developer.apple.com/documentation/swiftui/viewbuilder struct HeaderView: View { @State var choices = Choices.one @ViewBuilder var body: some View { switch choices { case .two: ChoiceTwoView(choices: choices) default: ChoiceOneView(choices: choices) } } } Note that there is no return statement.
Mar ’21
Reply to Family sharing of in app purchases
Dear Steve T, Thanks for your tip! Indeed I am not calling SKPaymentQueue.restoreCompletedTransactions, but only SKReceiptRefreshRequest, since I was processing the receipts anyway on our server. I will try to call SKPaymentQueue.restoreCompletedTransactions as well and see if that solves the issue. It will take a while before I can confirm that this works.
Jul ’21
Reply to Family sharing of in app purchases
After I have added SKPaymentQueue.restoreCompletedTransactions I did not receive any complaints of users expierincing problems with family sharing of in app purchases. So concluding, SKReceiptRefreshRequest refreshes the receipt, but does not always fetch all family shared in-app purchases. To make sure you get all the in app purchases shared by family members you need to invoke SKPaymentQueue.restoreCompletedTransactions.
Aug ’21
Reply to File transfer issue from iPhone to Watch after iOS 17.5 & WatchOS 10.5 update
Also having the same problem with WCSessionFileTransfer. The didFinish fileTransfer delegate method is never called anymore. I also successfully used the solution with sending a custom message from the Watch OS app to the iOS app once the file received. I also noticed that the WCSession keeps all oustandingFileTransfers. I clean them by checking the progress, and cancelling them manually and do some custom cleanup. for fileTransfer in session.outstandingFileTransfers { if (fileTransfer.progress.isFinished) { fileTransfer.cancel() didFinish(fileTransfer) // my method } } Hopefully Apple fixes this issue soon.
Jun ’24
Reply to Crash on launch from all TestFlight builds, but when loading the app from Xcode
We also had unexpected crashes on launch on iOS 17 due to using NSDecimalRound. We have followed the suggestion from the known issues in the Xcode 16 RC Release notes by writing a designated class in Objective C and calling the NSDecimalRound function from objective C instead of from Swift. This prevents the crash. Below our code: // DecimalRoundFix.m #import "DecimalRoundFix.h" @implementation DecimalRoundFix +(void)round:(nonnull NSDecimal *)result number: (nonnull NSDecimal *)number scale: (NSInteger) scale roundingMode: (NSRoundingMode) roundingMode { NSDecimalRound(result, number, scale, roundingMode); } @end // DecimalRoundFix.h #import <Foundation/Foundation.h> @interface DecimalRoundFix : NSObject { } +(void)round:(nonnull NSDecimal *)result number: (nonnull NSDecimal *)number scale:(NSInteger) scale roundingMode: (NSRoundingMode) roundingMode; @end Then in your Swift code replace everywhere: NSDecimalRound(&result, &number, scale, roundingMode) with DecimalRoundFix.round(&result, number: &number, scale: scale, roundingMode:roundingMode).
Sep ’24