Die allgemeine Regel ist , dass , wenn Sie anrufen isKindOfClass:und du bist nicht einer der plist Klassen vorbei (zB NSString oder NSNumber), tun Sie es falsch.
Wenn die Methode tut zwei oder mehr verschiedene Dinge, je nachdem, welche Klasse ihr Argument ist, zerreißt es in mehrere Methoden, und jede Methode separat testen.
Wenn die Methode funktioniert nur eine Sache, aber hat mit dem Objekt unterschiedlich, je nachdem, welcher Klasse es ist, dann zu interagieren:
- Machen Sie ein Protokoll. (Protokolle in Obj-C sind „Schnittstellen“ in einigen anderen OO-Sprachen genannt, wie Java.)
- Nehmen Sie die viele Klassen alle das Protokoll entsprechen. Bei Bedarf Kategorien verwenden, um die notwendigen Methoden von außen hinzuzufügen.
- Machen Sie das Verfahren unter Testprüfung auf Übereinstimmung mit dem Protokoll, anstelle der aktuellen
isKindOfClass:Überprüfung.
- Machen Sie das Verfahren unter Test, die Methoden in dem Protokoll verwenden.