5 Stimmen

Objective-C Freigabe von Singletons

Ich bin ziemlich neu in der Objective-C-Programmierung und das Freigeben von Objekten ist mein größtes Kopfzerbrechen. Ich bin immer im Zweifel, was freigegeben werden muss, und meine Zeiten habe ich am Ende die falsche Variable freigeben und bekommen eine BAD EXEC Absturz. Ich habe Apples Anleitung zur Speicherverwaltung gelesen, aber ich kann nicht immer von deren Beispielen auf meinen Code übertragen.

Eine dieser Situationen sind meine Singletons (ich bin ein großer Singleton-Typ).

Ich habe einen als diesen definiert:

static Configuration* _instance;

+(Configuration*)getInstance{
    if (_instance == NULL){
        _instance = [Configuration alloc];
        [_instance initConfig];
    }
    return _instance;
}

In meinem Code verwende ich es so:

//Store configuration       
Configuration* conf = [Configuration getInstance];  
conf.userName = self.userName.text;
conf.cellPhone = self.phoneNumber.text;

Muss ich die Variable "conf" freigeben?

Wann sollte ich die _instance freigeben?

Da Im läuft dieser Code auf iPhone, was passiert mit den vars ich nicht freigeben? werden sie die iPhone-Leistung beeinträchtigen?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X