Moinsen,
Ich hab da mal ne Frage...
Geht denke ich eher in die richtung Basis Wissen...
Ich habe diverse Swift Files mit diversen Klassen drin.
Soweit ist das alles noch logisch.
Ich versuche pro Storyboard nur ein Swift file zu machen.
Dieses Swift File covert dann alle Klassen die das Storyboard benütze.
Nun die Frage die ich nun habe...
Ich habe ein App geschrieben welches API requests zu verschiedenen Server macht. (websocket API)
Nun habe ich das bis jetzt in jedem Storyboard Swift File selbst das hadling der API gemacht.
Ich habe nun alle Requests aus den diversen Swift Files rausgenommen und diese in ein zentrales Swift File "ApiHandling" gepackt.
Für die diversen requests habe ich funktionen erstellt.
Wie kann ich nun diese Klasse "ApiHandling" als erstes starten und immer im "Hintergrund" laufen lassen?
hier mal ein Beispiel:
Alles anzeigen
Für die generelle Kommunikation der API abfragen benütze ich Starscream.
Ich denke mal ich verfolge schon den richtigen Ansatz oder nicht?
Es macht ja keinen Sinn, in jeder Datei die requests und alles zu handlen. Da mache ich besser ein dediziertes File mit einer dedizierten klasse oder nicht?
Nochmal kurz zusammengefasst:
Die Klasse ApiHandler soll als erstes aufgerufen werden, da diese die Connection zu dem Server steuert.
Die Klasse soll dann immer im Hintergund laufen. so dass die verbindung immer von der Klasse kontrolliert wird.
Das Ziel:
Die API Verbinung wird zentral con einer Klasse getsteuert.
Alle anderen Klassen greiffen dann über Funktionen darauf zu.
Ich hab da mal ne Frage...
Geht denke ich eher in die richtung Basis Wissen...
Ich habe diverse Swift Files mit diversen Klassen drin.
Soweit ist das alles noch logisch.
Ich versuche pro Storyboard nur ein Swift file zu machen.
Dieses Swift File covert dann alle Klassen die das Storyboard benütze.
Nun die Frage die ich nun habe...
Ich habe ein App geschrieben welches API requests zu verschiedenen Server macht. (websocket API)
Nun habe ich das bis jetzt in jedem Storyboard Swift File selbst das hadling der API gemacht.
Ich habe nun alle Requests aus den diversen Swift Files rausgenommen und diese in ein zentrales Swift File "ApiHandling" gepackt.
Für die diversen requests habe ich funktionen erstellt.
Wie kann ich nun diese Klasse "ApiHandling" als erstes starten und immer im "Hintergrund" laufen lassen?
hier mal ein Beispiel:
Quellcode
- import Foundation
- import Starscream
- class ApiHandler: WebSocketDelegate, WebSocketPongDelegate {
- //---------------------------------------- API Hanlder ----------------------------------
- func websocketDidConnect(socket: WebSocketClient) {
- print("websocket is connected")
- }
- func websocketDidDisconnect(socket: WebSocketClient, error: Error?) {
- if let e = error {
- print("websocket is disconnected: \(e.localizedDescription)")
- } else {
- print("websocket disconnected")
- }
- }
- func websocketDidReceiveMessage(socket: WebSocketClient, text: String) {
- }
- func websocketDidReceiveData(socket: WebSocketClient, data: Data) {
- print("Received data: \(data.count)")
- }
- func websocketDidReceivePong(socket: WebSocketClient, data: Data?) {
- print("Ping detected and answered")
- }
- var socket = WebSocket(url: URL(string: "LINK")!, protocols: ["chat", "superchat"])
- socket.connect()
- //functions
- }
Für die generelle Kommunikation der API abfragen benütze ich Starscream.
Ich denke mal ich verfolge schon den richtigen Ansatz oder nicht?
Es macht ja keinen Sinn, in jeder Datei die requests und alles zu handlen. Da mache ich besser ein dediziertes File mit einer dedizierten klasse oder nicht?
Nochmal kurz zusammengefasst:
Die Klasse ApiHandler soll als erstes aufgerufen werden, da diese die Connection zu dem Server steuert.
Die Klasse soll dann immer im Hintergund laufen. so dass die verbindung immer von der Klasse kontrolliert wird.
Das Ziel:
Die API Verbinung wird zentral con einer Klasse getsteuert.
Alle anderen Klassen greiffen dann über Funktionen darauf zu.