2017-03-21 20 views
1

Ich arbeite durch eine Core Data Übung aus einem Buch und es beginnt mit dem Erstellen einer Hilfsklasse, die ein Singleton ist. Ich verstehe, dass globale Variablen außerhalb des Klassenbereichs einer Klasse erstellt werden können und während des gesamten Projekts zugänglich sind, wo ich jedoch verwirrt bin, als ein Beispiel aus dem Buch eine globale Variable erstellt und sie auf privat setzt. Ich nahm an, dass durch das Setzen einer Variable auf privat nur auf diese spezifische Klasse zugegriffen werden kann. Diese private globale Variable wird außerhalb der Hilfsklasse erstellt, daher nehme ich an, dass sie für alle Klassen im Projekt zugänglich ist, daher ist das private Schlüsselwort nicht notwendig. Kann mir jemand helfen, indem ich bestätige, ob meine Annahmen richtig oder falsch sind, wie ich wirklich gerne verstehen würde.Wie wird eine globale Variable, die in swift auf privat gesetzt ist, verstanden?

Hier ist der Code aus dem Beispiel des Buchs:

import Foundation 

import CoreData 


//this is a global variable accessible from any module or class 
private let _sharedCDHelper = CDHelper() 

class CDHelper: NSObject { 

    // MARK: - SHARED INSTANCE 
    class var shared: CDHelper { 
     return _sharedCDHelper 
    } 
} 

Antwort

2

eine private globale Variable in Swift ist ein weltweit tätige, die nur aus der Datei ist, in der sie deklariert ist.

Das von Ihnen verwendete Buch entspricht nicht den aktuellen Best Practices für das Erstellen von Singletons in Swift (vielleicht ist es etwas veraltet?).

Die private globale Variable ist nicht erforderlich. Sie können einfach sagen:

class CDHelper: NSObject { 
// MARK: - SHARED INSTANCE 
    static let shared = CDHelper() 
} 
Verwandte Themen