Post

Replies

Boosts

Views

Activity

Reply to Combining More Than Four @Published Variables in Combine?
I guess it goes like the following. Publishers.CombineLatest4($variable0, $variable1, $variable2, $variable3) .combineLatest($variable4) .combineLatest($variable5) .sink { completion in } receiveValue: { response0, response1 in let variable = response0.0 let variable4 = response0.1 let variable5 = response1 let v0 = variable.0 let v1 = variable.1 let v2 = variable.2 let v3 = variable.3 }.store(in: &cancellables) It's kind of odd.
Topic: UI Frameworks SubTopic: UIKit Tags:
Nov ’21
Reply to UILabel with superscript text
override func viewDidLoad() { super.viewDidLoad() let text = "1:47PM" if let regularFont = UIFont(name: "Helvetica", size: 20.0), let subscriptFont = UIFont(name: "TamilSangamMN", size: 12.0) { let attString:NSMutableAttributedString = NSMutableAttributedString(string: text, attributes: [.font: regularFont]) attString.setAttributes([.font: subscriptFont, .baselineOffset: 6], range: NSRange(location: text.count - 2, length: 2)) label.attributedText = attString } }
Topic: Programming Languages SubTopic: Swift Tags:
Nov ’21
Reply to Using Combine-Future to Fetch Server Data
The following works. import UIKit import Combine class ViewController: UIViewController { // MARK: - Variables private var cancellableSet: Set<AnyCancellable> = [] override func viewDidLoad() { super.viewDidLoad() let _ = Future<[DataModel], Error> { [weak self] promise in guard let strongSelf = self else { return } let url = URL(string: "https://api.github.com/repos/ReactiveX/RxSwift/events")! URLSession.shared.dataTaskPublisher(for: url) .timeout(2.0, scheduler: DispatchQueue.global(qos: .background)) .retry(3) .map { $0.data } .decode(type: [DataModel].self, decoder: JSONDecoder()) .sink(receiveCompletion: { (completion) in print("I'm done: \(completion)") }, receiveValue: { dataModels in for model in dataModels { print("\(model.id) \(model.type)") } promise(.success(dataModels)) }) .store(in: &strongSelf.cancellableSet) } } } I wonder why it doesn't work if I use ViewModel?
Topic: UI Frameworks SubTopic: UIKit Tags:
Dec ’21
Reply to Using Combine-Future to Fetch Server Data
I guess the following is better. But I'm not completely satisfied. // ViewController // import UIKit import Combine class ViewController: UIViewController { // MARK: - Variables var cancellable: AnyCancellable? private var cancellableSet: Set<AnyCancellable> = [] // MARK: - Life cycle override func viewDidLoad() { super.viewDidLoad() let urlStr = "https://api.github.com/repos/ReactiveX/RxSwift/events" let viewModel = ViewModel(urlStr: urlStr, waitTime: 7.0) viewModel.fetchData(urlText: viewModel.urlStr, timeInterval: viewModel.waitTime) .sink { completion in print("Done!") } receiveValue: { dataModels in print("Count: \(dataModels.count)") } .store(in: &cancellableSet) } } // ViewModel // import UIKit import Combine class ViewModel { var anycancellables = Set<AnyCancellable>() var urlStr: String var waitTime: Double init(urlStr: String, waitTime: Double) { self.urlStr = urlStr self.waitTime = waitTime } func fetchData(urlText: String, timeInterval: Double) -> Future<[DataModel], Error> { return Future<[DataModel], Error> { promise in let url = URL(string: urlText)! var request = URLRequest(url: url) request.timeoutInterval = timeInterval let sessionConfiguration = URLSessionConfiguration.default let session = URLSession(configuration: sessionConfiguration) session.dataTask(with: request) { data, response, error in if let error = error { print("error: \(error.localizedDescription)") promise(.failure("Failure" as! Error)) } if let jsonData = data { do { let dataModels = try JSONDecoder().decode([DataModel].self, from: jsonData) promise(.success(dataModels)) } catch { print("Error while parsing: \(error)") } } }.resume() } } }
Topic: UI Frameworks SubTopic: UIKit Tags:
Dec ’21
Reply to Sign in with Apple not working on Xcode 13 simulators
I've tested my sample app with Apple Sign In with two simulators. They don't go further after I enter my password. When I tested it for a macOS application two weeks ago, I ended up restarting my iMac. The same is true for an iOS sample that I created at the same time. I had to restart my iPhone. Anyway, in your case, I wouldn't be worried as long as it works on an actual device. Some features simply don't work with the simulator.
Topic: App & System Services SubTopic: General Tags:
Dec ’21
Reply to how to use Apple Pay without backend server or stripe.
To my knowledge, Apple Pay is not a payment processing service system. It's a mediator or a digital wallet that stores privacy data and allows the user to make a payment through a third-party processing system. So the answer to your question is no, I suppose.
Topic: App & System Services SubTopic: Core OS Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to Question free app
It depends on the purpose of your app. After a trial period, if the app has no features to use, then it will be rejected for sure.
Replies
Boosts
Views
Activity
Nov ’21
Reply to Combining More Than Four @Published Variables in Combine?
Maybe, subscribing to an array of them?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to Combining More Than Four @Published Variables in Combine?
Actually, no...
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to Combining More Than Four @Published Variables in Combine?
I thought let publishers = Publishers.CombineLatest4($variable0, $variable1, $variable2, $variable3) .combineLatest($variable4) .combineLatest($variable5) could work. But it doesn't.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to Combining More Than Four @Published Variables in Combine?
I guess it goes like the following. Publishers.CombineLatest4($variable0, $variable1, $variable2, $variable3) .combineLatest($variable4) .combineLatest($variable5) .sink { completion in } receiveValue: { response0, response1 in let variable = response0.0 let variable4 = response0.1 let variable5 = response1 let v0 = variable.0 let v1 = variable.1 let v2 = variable.2 let v3 = variable.3 }.store(in: &cancellables) It's kind of odd.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to Hottest 0529579100 Dubai Call Girls, Indian Call Girls in Dubai
Are you having fun?
Replies
Boosts
Views
Activity
Nov ’21
Reply to Alnahda Dubai (Call) Girls +971589930402
Don't you have something else to have fun?
Replies
Boosts
Views
Activity
Nov ’21
Reply to Getting ignored by support
Call them up?
Replies
Boosts
Views
Activity
Nov ’21
Reply to Where do I start?
You should start by reading the Swift Programming Language.
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to UILabel with superscript text
override func viewDidLoad() { super.viewDidLoad() let text = "1:47PM" if let regularFont = UIFont(name: "Helvetica", size: 20.0), let subscriptFont = UIFont(name: "TamilSangamMN", size: 12.0) { let attString:NSMutableAttributedString = NSMutableAttributedString(string: text, attributes: [.font: regularFont]) attString.setAttributes([.font: subscriptFont, .baselineOffset: 6], range: NSRange(location: text.count - 2, length: 2)) label.attributedText = attString } }
Topic: Programming Languages SubTopic: Swift Tags:
Replies
Boosts
Views
Activity
Nov ’21
Reply to Using Combine-Future to Fetch Server Data
The following works. import UIKit import Combine class ViewController: UIViewController { // MARK: - Variables private var cancellableSet: Set<AnyCancellable> = [] override func viewDidLoad() { super.viewDidLoad() let _ = Future<[DataModel], Error> { [weak self] promise in guard let strongSelf = self else { return } let url = URL(string: "https://api.github.com/repos/ReactiveX/RxSwift/events")! URLSession.shared.dataTaskPublisher(for: url) .timeout(2.0, scheduler: DispatchQueue.global(qos: .background)) .retry(3) .map { $0.data } .decode(type: [DataModel].self, decoder: JSONDecoder()) .sink(receiveCompletion: { (completion) in print("I'm done: \(completion)") }, receiveValue: { dataModels in for model in dataModels { print("\(model.id) \(model.type)") } promise(.success(dataModels)) }) .store(in: &strongSelf.cancellableSet) } } } I wonder why it doesn't work if I use ViewModel?
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Dec ’21
Reply to Using Combine-Future to Fetch Server Data
I've removed the comment.
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Dec ’21
Reply to Using Combine-Future to Fetch Server Data
I guess the following is better. But I'm not completely satisfied. // ViewController // import UIKit import Combine class ViewController: UIViewController { // MARK: - Variables var cancellable: AnyCancellable? private var cancellableSet: Set<AnyCancellable> = [] // MARK: - Life cycle override func viewDidLoad() { super.viewDidLoad() let urlStr = "https://api.github.com/repos/ReactiveX/RxSwift/events" let viewModel = ViewModel(urlStr: urlStr, waitTime: 7.0) viewModel.fetchData(urlText: viewModel.urlStr, timeInterval: viewModel.waitTime) .sink { completion in print("Done!") } receiveValue: { dataModels in print("Count: \(dataModels.count)") } .store(in: &cancellableSet) } } // ViewModel // import UIKit import Combine class ViewModel { var anycancellables = Set<AnyCancellable>() var urlStr: String var waitTime: Double init(urlStr: String, waitTime: Double) { self.urlStr = urlStr self.waitTime = waitTime } func fetchData(urlText: String, timeInterval: Double) -> Future<[DataModel], Error> { return Future<[DataModel], Error> { promise in let url = URL(string: urlText)! var request = URLRequest(url: url) request.timeoutInterval = timeInterval let sessionConfiguration = URLSessionConfiguration.default let session = URLSession(configuration: sessionConfiguration) session.dataTask(with: request) { data, response, error in if let error = error { print("error: \(error.localizedDescription)") promise(.failure("Failure" as! Error)) } if let jsonData = data { do { let dataModels = try JSONDecoder().decode([DataModel].self, from: jsonData) promise(.success(dataModels)) } catch { print("Error while parsing: \(error)") } } }.resume() } } }
Topic: UI Frameworks SubTopic: UIKit Tags:
Replies
Boosts
Views
Activity
Dec ’21
Reply to Sign in with Apple not working on Xcode 13 simulators
I've tested my sample app with Apple Sign In with two simulators. They don't go further after I enter my password. When I tested it for a macOS application two weeks ago, I ended up restarting my iMac. The same is true for an iOS sample that I created at the same time. I had to restart my iPhone. Anyway, in your case, I wouldn't be worried as long as it works on an actual device. Some features simply don't work with the simulator.
Topic: App & System Services SubTopic: General Tags:
Replies
Boosts
Views
Activity
Dec ’21