Posts

Post marked as solved
5 Replies
Thank you, you helped a lot. We decided to ignore some of the cases and handle the server update fail only if there is a way to identify the user at this point, otherwise an error message will be shown with follow up instructions.
Post marked as solved
5 Replies
Hi, Thank you for your detailed reply.Yes, you’re right they shouldn’t their share Apple ID, but one person might have two or more accounts in the app for example.About recording user data during paymentRequest - it sounds like a good option, but I wonder how to match this data to the SKPaymentTransaction when updatedTransactions is called - to make sure this user data matches this transaction. For example:User A makes purchase. UpdatedTransactions not called yet for some reason (user A goes through a tunnel). User A logs out. User B logs in. User B makes purchase. UpdatedTransactions is called for both transactions and I have both user datas. How do I know which transaction belongs to which user.
Post marked as solved
5 Replies
The issue is now fixed. It turned out that there was previous update on the same UILabel that was made on a background thread. It also did not update the label. Then even though the new update was done on the main thread it was not working. Maybe because the value was the same as the one that was set on a background thread.
Post marked as solved
5 Replies
Hi, thanks for your reply. Here is some part of the code:This is an event that is being fired at some point.ConnectionManager.shared.onConnectionShouldStop = { [weak self] in LogManager.sharedInstance.writeDebugInfo(forString: "Connection should stop. 5 seconds no valid response") guard let self = self else { return } BLEDiscoveryManager.shared.disconnectPeripheral() self.disconnectApp(adapterStopped: false) DispatchQueue.main.async { self.showDevicesMenu() } }The update to the UILabel is part of the disconnectApp method. Part of disconnect:func disconnectApp(adapterStopped: Bool) { //some more code that has nothing to do with the label and works properly //… DispatchQueue.main.async { self.peripheralsTableView.reloadData() self.updateEverywhereForConnectionLost() } }Then at some point in updateEverywhereForConnectionLost:DispatchQueue.main.async { for child in self.children { if child is SpeedViewController { let controller = child as! SpeedViewController LogManager.sharedInstance.writeDebugInfo(forString: “Assigning value“) controller.speedValueLabel.attributedText = NSAttributedString(string: "-") } } }To test this I have to go to a testing setup, so the debugging is done by logging to a file. The messages logged by LogManager are visible in the log, so the calls are made. But the UILabel does not update. Once or twice I saw it update with some delay of around 5 seconds, but after that it stopped updating at all.