2014-02-01 18 views
0

Я хочу знать способ porper создать singleton class. В настоящее время я делаю следующим образом. В файле .h я объявляю экземпляр класса следующим образом.Как создать класс singleton в ios?

@interface GlobalMethods : NSObject 
{ 
} 
+ (GlobalMethods *)sharedInstance; 

И в файле .m я сделал код следующим образом.

@implementation GlobalMethods 
- (id)init 
{ 
self = [super init]; 
if (self) 
{ 
    //Custom Intialization 
} 

return self; 
} 

+ (GlobalMethods *)sharedInstance 
{ 
    static GlobalMethods *sharedInstance = nil; 
    @synchronized(self) 
    { 
     if (sharedInstance == NULL) 
     { 
       sharedInstance = [[GlobalMethods alloc] init]; 
     } 
     return sharedInstance; 
} 

}

+0

Строго говоря, нет никакого способа создания синглтона при использовании дуги. Вы можете создать общий объект, который очень похож. Вы используете Arc? – geminiCoder

+1

Также вы можете посмотреть dispatch_once https://developer.apple.com/library/mac/documentation/Performance/Reference/GCD_libdispatch_Ref/Reference/reference.html#//apple_ref/c/func/dispatch_once вместо @synchronised , – geminiCoder

ответ

1

мы можем создать только один экземпляр из этого одноплодной класса.
взять взгляд на этой странице для получения дополнительной информации с кодом:

http://www.galloway.me.uk/tutorials/singleton-classes/