Ich arbeite an einer App, wo ich MSR-Kartendaten analysieren muss, um nach einer bestimmten Benutzer-ID-Nummer zu suchen. Die Besonderheiten des Parsens werden für verschiedene Clients unterschiedlich sein. Idealerweise würde ich gerne separate Klassen schreiben, die dieselbe Schnittstelle implementieren und auswählen, welche zur Laufzeit verwendet werden soll. Es gibt auch eine Web-Komponente, also habe ich in PHP einfach eine Schnittstelle erstellt, dann einige verschiedene Klassen, die es implementieren, und wählen, welche basierend auf einem Konfigurationswert instanziiert werden soll. Was ist der richtige Weg, dies in Objective-C zu tun?Objective-C: Wie man die Implementierung zur Laufzeit entscheidet
Ich habe den Pfad mit einem Protokoll gestartet, kann aber nicht herausfinden, wie die Implementierung festgelegt wird, die der aufrufende Code verwenden soll. Müsste ich alle Implementierungsklassen importieren und dann einen Schalter schreiben? Es scheint, als sollte es einen einfacheren Weg geben.
Danke
Das sieht genau so aus, was ich machen möchte. Ich denke, ich vermisse nur die Fabrikklasse/Methode. Wenn es dir nichts ausmacht, könntest du mir einen kleinen Pseudocode geben, wie MSRParserHelper aussehen könnte? – nicthu
Es wäre eine Klasse mit einer einzigen öffentlichen [Klassenmethode] (https://developer.apple.com/library/prerelease/content/documentation/General/Conceptual/DevPedia-CocoaCore/ClassMethod.html) - die Syntax wird angezeigt in der Dokumentation, aber die Implementierung dieser Funktion ist ganz spezifisch für Ihre Situation, Sie würden die "Karte" untersuchen und entscheiden, welche von mehreren anderen Klassen zu verwenden, dann erstellen und eins zurückgeben. – jhabbott
Yep - Ich habe das sortiert, funktioniert super. Danke noch einmal! – nicthu