2016-04-13 3 views
0

Ich habe diese Singletonklasse Code, wo ich anrufen Sachen halten wie folgt aus:Alias ​​für Singleton Objekt

[[Core sharedCore] variantPrice:@"variant_no"]; 

Wie kann ich einen Alias ​​machen (das Xcode wird auch verstehen), dass es so macht:

[Core variantPrice:@"variant_no"] 
+0

Sie tun könnte: '+ (void) variantPrice: (NSString *) Variante {[[Kern sharedCore] variantPrice: Variante ];} '. Mit anderen Worten, Sie verwenden eine Methodenklasse, die sich selbst als Singleton-Methode bezeichnet. – Larme

Antwort

1

Sie können die unten Anweisung überall definieren und _gCore verwenden, wo immer erforderlich:

# define _gCore [Core sharedCore] 
+0

Vielen Dank, genau das, was ich brauchte. Ich ersetzte diese Aussage 1074 mal und es sofort hat alle meine Tests bestanden :). Danke noch einmal! –

+1

Dieses * kann * das Problem lösen, aber mit [Makros wie diesem ist ein sicherer Code-Geruch] (http://qualitycoding.org/preprocessor/). Wenn Sie * wirklich * wirklich oft auf Ihr Singleton zugreifen, um eine Verknüpfung zu rechtfertigen, müssen Sie wahrscheinlich neu strukturieren, wie Ihr Code überhaupt funktioniert. – Hamish

1

Sie schreiben eine Klassenmethode

+ (void)variantPrice 

die

ruft
[[self sharedCore] variantPrice] 
+0

Ich denke, ich habe meine Frage falsch angegeben, sorry. Was ich erreichen will, ist eine vereinfachte Aussage des (statischen) Singleton 'Core', so dass ich jedes Mal, wenn ich etwas auf meinem Singleton anrufe, den' Core sharedCore'-Teil vereinfachen kann "Core" oder "sharedCore" werden, wenn der "Core" Name in Konflikt gerät. Ich bin mir nicht sicher, aber vielleicht etwas wie Compilerhinweis? –