2017-08-10 3 views
0

Ich könnte nur eine oder zwei Methoden in jeder dieser Klassen haben. Muss jede dieser Klassen in separaten Dateien sein? Was die gute Codierung hier üben?Bedeutet das Erstellen einer neuen Klasse in Objective C zwangsläufig das Erstellen einer neuen Datei für jede der neuen Klassen?

+0

Wenn es sich um verschiedene Objekte handelt, müssen Sie sicherstellen, dass es sich um separate Klassen handelt. – GeneCode

+0

https://StackOverflow.com/a/22545652/341994 – matt

Antwort

2

Nein, Sie haben keine müssen eine neue Quelldatei für jede Klasse erstellen. Es ist im Allgemeinen eine gute Idee und nicht wirklich eine Last, also warum nicht Sie? Aber es ist durchaus möglich, mehrere @implementation Blöcke für mehrere Klassen in der gleichen Quelldatei zu platzieren. Wenn eine Klasse nur in dieser Quelldatei verwendet wird, kann auch ihr @interface Block vorhanden sein. Das heißt, alles über eine Klasse kann zusammen mit anderen Klassen in der einen Datei enthalten sein.

+0

Also, Sie wollen sagen, die Schnittstelle und Implementierung kann in der gleichen Datei sein? Würde die Datei in diesem Fall den Namen .h-Datei haben? (Obwohl diese Datei sowohl die Schnittstelle als auch die Implementierung hat?) – dashuser

+0

Ich habe auch mehrere sehr kleine, eng verwandte Klassen in eine .h und .m Datei geschrieben. Auch wenn sie alle in einer anderen Klasse verwendet werden. Zum Beispiel eine Familie von Kriterien, die in einem Regeleditor verwendet werden. – Willeke

+0

Sie sollten eine Implementierung nicht in eine Headerdatei einfügen. Sie * können * eine Schnittstelle in eine Quelldatei (.m) einfügen, wenn sie in keiner anderen Datei benötigt wird. –

-1

Es ist nicht notwendig, für jede der neuen Klassen eine neue Datei zu erstellen. z. B .:

UIViewController *controller = [[UIViewController alloc] init]; 
[self.navigationController pushViewController:controller animated:YES]; 

Auf diese Weise könnten Sie immer noch einen neuen Controller drücken. Wenn Sie jedoch Ihre benutzerdefinierte Methode implementieren müssen, müssen Sie eine neue Datei für die Klasse erstellen und eine eigene Methode hinzufügen.

Verwandte Themen