2017-03-07 4 views
0

Ich habe eine konstante Datei auf meine Anwendung als constants.swift erstellt und ich bin mit struct Konstanten zu definieren, wieSchnelle Constant-Datei?

struct moments { 
    struct parameter { 
     static let email = "email" 
     static let me = "me" 
     static let fields = "fields" 
     static let params = "id, name, first_name, last_name, picture.type(large), email" 
    } 

    struct title { 
     static let timeLineTitle = "Moments" 
     static let settingsTitle = "Settings" 
     static let menuTitle = "Menu" 
     static let openCamera = "Say Cheese!!! " 
     static let openGallery = "Pick from Moments " 
     static let addAudio = "Record Audio " 
     static let addNote = "Write Note " 
    } 

    struct notification { 
     static let notificationIdentifier = "NotificationIdentifier" 
    } 

    struct entity{ 
     static let image = "Image" 
     static let note = "Note" 
     static let Audio = "Audio" 
    } 

    struct menu { 
     static let home = "Home" 
     static let settings = "Settings" 
     static let logout = "Logout" 
    } 

    struct cell { 
     static let cellIdentifier = "timeLineCell" 
     static let imageCell = "imageCell" 
    } 

} 

folgt aber ich habe wie mit class, singleton und enum ich mehrere andere Optionen gefunden wollte wissen, welche die effiziente Möglichkeit ist, Konstanten in meiner App zu verwenden ...

+1

Eine separate Datei für Konstanten macht nur Sinn, wenn die Konstanten für einen logischen Zweck, z. weil sie Zeichenfolgen im selben Protokoll darstellen. Wenn Sie Konstanten erstellen, um alle Konstanten an einer Stelle zu haben, wird der Code weniger lesbar, als wenn Sie Konstanten in Dateien definieren, in denen diese Konstanten verwendet werden. – dasblinkenlight

+0

Wenn es konstant zu einem vorhandenen Typ gehört, ist es besser, eine Erweiterung zu erstellen und die Konstante dort hinzuzufügen – Adolfo

+0

@Adolfo können Sie mir ein Beispiel dafür, wie man das tun –

Antwort

1

Klasse und Singleton-Klasse sind entworfen, um anderen Zweck zu dienen. Diese sollten ausgeschlossen werden, wenn wir über reine Konstanten schreiben. Unter zwei linken Optionen sind struct und enum. Unter ihnen wird enum normalerweise verwendet, wenn wir ähnliche Arten von Konstanten gruppieren. Zum Beispiel können wir mögliche Zustände einer Variablen in enum behalten. Andere Optionsstrukturen sind am besten in Ihrem Fall und in anderen Fällen zu verwenden, wo es sich um reine Konstanten handelt.

1

Klasse und Singleton-Klasse für die Vorbereitung von Konstanten ist nicht erforderlich, bis Sie diese Konstanten privat wollen.
Sie können Konstanten direkt in Ihrer swift-Datei wie folgt erstellen. enter image description here

Oder mit Struct.

enter image description here

Beide sind die effiziente Art und Weise Konstanten zu erstellen. Verwenden Sie die Klasse und Singleton, wenn Konstanten privat sein und für bestimmte Klassen verwendet werden sollen.
Dieser Code ist in Swift 2.3, es ist für die allgemeine Idee, Konstanten zu erstellen!

+0

was ist mit der Verwendung enum wie angegeben [hier] (https://www.natashatherobot.com/swift-enum-no-cases/) @KiranJasvanee –

+1

Lassen Sie mich eine Antwort darauf auch erstellen Varun – KiranJasvanee

+0

Ich weiß, wie man es am meisten fragt effiziente Sache zu verwenden und warum –

1

Als Sie nach einer anderen Antwort für enum Fall fragen. Sie können enum private/public in jeder swift-Datei erstellen.
Wie Sie hier sehen können, habe ich zwei Enums erstellt. 1 für meine private Nutzung und 1 für die Öffentlichkeit. enter image description here

Private wird nicht in allen Klassen zugänglich sein. Es darf nur innerhalb der von ihm deklarierten Klasse aufgerufen werden.
Jetzt versuche ich auf Enums in anderen Klassen wie unten zuzugreifen. Sie können hier überprüfen, ich bekomme Zugang von publicEnum, aber nicht privateEnum. enter image description here

Jetzt lassen Sie mich Ihnen sagen, wie Sie auf private Enums auf Klasse zugreifen können, wo Sie es deklariert.
enter image description here
Sie können hier überprüfen, In enum_privately Klasse können Sie beide zugreifen. Jetzt basierend auf der obigen Ausarbeitung, können Sie herausfinden, wann und wo es effizient sein wird, welcher Weg basierend auf Ihrer Anforderung verwendet wird.

1

Hier ist ein Beispiel über Konstanten in Bezug auf bestehende Typen

extension Double 
{ 
    static var pi: Double 
    { 
     return 3.14159265358979323846264338327950288 
    } 
} 

print(Double.pi) 
1

Bei Konstanten mit bestimmten Werten, wie Strings, besteht das Problem mit Swift-Enums darin, dass Sie ständig zum und vom Rohwert konvertieren müssen. Deshalb bevorzuge ich die Verwendung von Strukturen wie Sie es getan haben.

Im Allgemeinen denke ich, es gute Praxis ist struct zu verwenden, es sei denn, Sie class aus einem bestimmten Grunde brauchen, und wenn es nur für halten Konstanten gibt es keinen Vorteil zu class verwenden.

Das Einfügen der Werte in Felder eines Singleton scheint nur wie zusätzliche Arbeit, es sei denn, Sie müssen manchmal andere Werte haben, z. B. zum Testen.