Ich bin neu in der iOS-Entwicklung, daher würde ich mich über Feedback freuen.Kommunikation zwischen Modell und Controller - iOS
Ich versuche, einen iOS-Client für meinen Webdienst zu erstellen. Soweit habe ich das gemacht:
Ich implementiere zwei Ansichten (Utility-basierte App mit Storyboard). In der Hauptansicht verwende ich ein Textfeld und eine Suchschaltfläche, wo der Benutzer eine Abfrage eingeben und dann auf die Suchschaltfläche klicken kann. Sobald der Suchknopf angeklickt ist, möchte ich den Wert des Textfelds lesen und in meinem Restful-Anruf für meinen Web-Service verwenden. Mein Webdienst antwortet mit einer JSON-Datei mit den Abfrageergebnissen, die ich parsen und dem Textbereich der sekundären Ansicht anzeigen kann.
Ich weiß, wie man den erholsamen Aufruf in iOS macht und wie man das JSON-Parsing macht und die Ergebnisse auf dem Bildschirm anzeigt (zumindest das Textkram, aber das ist eine andere Frage). Aber meine Absicht ist es, MVC Grundlagen zu meiner Anwendung zu lernen und zu implementieren.
Gemäß MVC aktualisiert der Controller die Ansicht, und das Modell sendet eine Benachrichtigungssendung, die der Controller abhören kann und weiß, ob Änderungen am Objekt vorliegen. Das würde ich am liebsten tun:
Mein Modell - Mein Modell würde den REST-Kern-Aufruf verarbeiten, die JSON-Antwort abrufen, analysieren und die resultierenden Werte abrufen, die ich in der Ansicht anzeigen möchte.
Mein Controller - Ich möchte, dass mein Controller auf mein Modell hört und die resultierenden Werte von Model abruft und sie in View anzeigt.
Mit einem schnellen und schmutzigen Weg kann ich den REST-Aufruf implementieren, JSON Parsing und Anzeige der resultierenden Werte - alle innerhalb des Controllers, aber mit dieser Technik, wenn meine Ansicht morgen ändert, dann muss ich meinen Code neu schreiben . Oder wenn ich neue Funktionen hinzufügen möchte, muss ich meinen Controller ändern. Idealerweise würde ich gerne ein Kernmodell haben, das nicht weiß, wie View aussieht, und lässt den Controller die Ergebnisse von Model übernehmen und sie in View anzeigen.
Von dem, was ich bisher aus den Google-Suchergebnissen gelesen habe, gibt es zwei Möglichkeiten: a) Schlüsselwertbeobachtung und b) Benachrichtigungszentrum.
In den letzten 2 Tagen versuche ich einen guten, vernünftigen Weg zu finden, Notification Center zu implementieren oder mehr darüber zu lesen, ich bekomme keinen guten Vorsprung. Einige der Fragen, die ich habe, ist, kann ich den String-Ergebnisse Wert senden mit Hilfe der Benachrichtigungszentrale, die mein Controller abholt? Wie funktioniert Notification Center wirklich mit String-Werten? Wo finde ich einige gute Beispiele?
Also jede Hilfe in diesem Zusammenhang wird sehr geschätzt werden.
Sie möchten wirklich, dass Ihr MODEL die Kommunikation mit dem RESTful-Service übernimmt? – Till