Objective-C Language Utiliser Grand Central Dispatch (GCD)


Exemple

GCD garantira que votre singleton ne sera instancié qu'une seule fois, même s'il est appelé depuis plusieurs threads. Insérez ceci dans n'importe quelle classe pour une instance singleton appelée shared .

+ (instancetype)shared {

    // Variable that will point to the singleton instance. The `static`
    // modifier makes it behave like a global variable: the value assigned
    // to it will "survive" the method call.
    static id _shared;

    static dispatch_once_t _onceToken;
    dispatch_once(&_onceToken, ^{

        // This block is only executed once, in a thread-safe way.
        // Create the instance and assign it to the static variable.
        _shared = [self new];
    });

    return _shared;
}