Frage

Ich möchte einige Methoden in einer Klasse schreiben, so dass andere Klassen mit diesen Methoden [instance methodName:Parameter] aufrufen können.

Wenn die Klasse eine Unterklasse von UIViewController ist, kann ich initWithNibName es zu initialisieren, verwenden. Aber ich mag die Methoden in einer NSObject die Unterklasse schreiben, wie kann ich es initialisieren?

War es hilfreich?

Lösung 2

Das finde ich arbeiten kann:

TheClass *newObject = [[TheClass alloc] init];
//do something here
[newObject release];

Andere Tipps

iphony ist richtig, aber er oder sie nicht sagen, dass Sie die Init-Methode selbst schreiben müssen. Ihre init-Methode im Allgemeinen wie folgt aussehen sollte:

- (id) init
    {
    if (self = [super init])
         {
         myMember1 = 0; // do your own initialisation here
         myMember2 = 0;
         }
    return self;
    }

Auch wenn die apple Dokumentation sagt

  

Die init-Methode in der Klasse NSObject definiert hat keine Initialisierung; es gibt einfach selbst.

und man kann nur zu schreiben versucht sein

- (id) init
  {
    myMember1 = 0; // do your own initialisation here
    myMember2 = 0;
    return self;
  }

Das ist falsch und nicht nach dem, was ausdrücklich in der Dokumentation angegeben wird:

  

In einer benutzerdefinierten Implementierung dieser (init) Methode, müssen Sie Super des aufrufen   bezeichnet initializer dann initialisieren und das neue Objekt zurück.

muss. Nicht sollte, könnte, sollte, etc.

Sie sollten nicht NSObject init übernimmt in Zukunft nicht ändern; noch die Oberklasse, aus der benutzerdefinierten Klasse abgeleitet ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top