• Apfeltalk ändert einen Teil seiner Allgemeinen Geschäftsbedingungen (AGB), das Löschen von Useraccounts betreffend.
    Näheres könnt Ihr hier nachlesen: AGB-Änderung
  • Viele hassen ihn, manche schwören auf ihn, wir aber möchten unbedingt sehen, welche Bilder Ihr vor Eurem geistigen Auge bzw. vor der Linse Eures iPhone oder iPad sehen könnt, wenn Ihr dieses Wort hört oder lest. Macht mit und beteiligt Euch an unserem Frühjahrsputz ---> Klick

Globale Konstanten speichern

K23

Jonagold
Registriert
27.06.13
Beiträge
19
Hallo zusammen,
ich glaube ich verwende die falschen Suchbegriffe.... Ich habe in meiner iPhone App eine Handvoll globaler Konstanten (String-Werte) die ich auf einigen Unterseiten benötige, z.B. meine Emailadresse, die Homepage-URL etc. Wo bzw. Wie kann ich die am besten deklarieren? Bei Google lande ich immer wieder bei Tipps z.B. wie man UserDefaults speichert, aber es handelt sich bei mir ja nicht um Variablen sondern um Konstanten. Wo speicher ich die am besten? Bin noch nicht so lange iOS-Entwickler, also wenns etwas komplizierter ist wäre ein Codebeispiel super!
Vielen Dank!
 

frostdiver

Zwiebelapfel
Registriert
19.06.12
Beiträge
1.285
Einfachste Möglichkeit
Lege z.B. Constants.h an mit:
#define EMAILADRESSE @"[email protected]"
Die Constants.h-Datei kannst du entweder jedesmal oder in APPNAME-Prefix.pch importieren.

Oder so (Constants.h): FOUNDATION_EXPORT NSString *const MyEmail;
(Constants.m): NSString *const MyEmail=@"[email protected]"
 
  • Like
Reaktionen: K23

Tobias Scholze

Apfeltalk Entwicker
AT Redaktion
Registriert
15.07.09
Beiträge
1.581
Hi,
es ist die Frage wie konstant deine Konstanten sind. Normal macht man #define PI 3.14 oder der Gleichen.
Darum, bei wirklich nicht veränderten Werten #define, ansonsten readonly UserDefaults.

LG
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
Hi,
es ist die Frage wie konstant deine Konstanten sind.
Eine Konstante ist konstant, sonst ist es keine Konstante.

Normal macht man #define PI 3.14 oder der Gleichen.
Darum, bei wirklich nicht veränderten Werten #define
Ich würde die zweite Möglichkeit, die frostdiver beschrieben hat bevorzugen.

ansonsten readonly UserDefaults.
Und wie bekommst Du die Konstante in die UserDefaults rein?
 

Tobias Scholze

Apfeltalk Entwicker
AT Redaktion
Registriert
15.07.09
Beiträge
1.581
@MacAppler,
über ein Init beim Install bzw. FirstAppStart. Wo dann natürlich eine Überprüfung laufen sollte, ob der Wert schon gesetzt ist.

Grüße,
 

MacApple

Schöner von Bath
Registriert
05.01.04
Beiträge
3.652
@MacAppler,
über ein Init beim Install bzw. FirstAppStart. Wo dann natürlich eine Überprüfung laufen sollte, ob der Wert schon gesetzt ist.
Nur wozu soll das überhaupt gut sein? Was hätte man davon, außer ein paar Bytes sinnlos auf der Platte verbraucht und unnötigen Code geschrieben? ;)
 

Nero91

James Grieve
Registriert
26.02.11
Beiträge
138
Wenn es geht sollte man generell auf globale Variablen verzichten, Speicher die Werte doch einfach in eine plist und rufe diese auf bei bedarf oder Speicher diese im NSUserdefault.
 
  • Like
Reaktionen: dennisS95

Tobias Scholze

Apfeltalk Entwicker
AT Redaktion
Registriert
15.07.09
Beiträge
1.581
@MaacApple, jep, dann sind die anderen Ideen besser. Ich habe jedoch auch schon erlebt das Leute z.b. die Versionsnummer oder Links als "Konstanten" angesehen habe - welche aber wohl doch nicht so konstant sind wie Pi z.b. :)

LG