主线程上的单例类 - iPhone

Geo*_*dis 3 iphone cocoa singleton objective-c

我的问题可能是愚蠢但我无法理解这一点.我使用此代码创建一个单例类.

+ (GameRequestHandler *) sharedInstance
{
    static dispatch_once_t pred;
    static GameRequestHandler *shared = nil;

    dispatch_once(&pred, ^{
        shared = [[GameRequestHandler alloc] init];
    });
    return shared;
}
Run Code Online (Sandbox Code Playgroud)

当我从这个单例对象调用方法时,它们是在主线程还是后台线程中调用的?

Jer*_*myP 7

在您调用它们的线程上调用这些方法.

dispatch_once只是确保传递给它的块只在应用程序的生命周期中执行一次.我不认为它使用线程,如果确实如此,那么这是一个你不需要担心的实现细节.