Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/112.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何在类方法中获得工作类型?_Ios_Objective C_Singleton_Typeof - Fatal编程技术网

Ios 如何在类方法中获得工作类型?

Ios 如何在类方法中获得工作类型?,ios,objective-c,singleton,typeof,Ios,Objective C,Singleton,Typeof,对于单身汉,我经常这样做 + (instancetype)sharedManager { static id instance = nil; static dispatch_once_t onceToken; dispatch_once(&onceToken, ^{ instance = [[self alloc] init]; }); return instance; } 但是这个static id instance=nil对

对于单身汉,我经常这样做

+ (instancetype)sharedManager
{
    static id instance = nil;
    static dispatch_once_t onceToken;
    dispatch_once(&onceToken, ^{
        instance = [[self alloc] init];
    });

    return instance;
}
但是这个
static id instance=nil
对类型没有严格要求,所以我想要

static typeof(self) instance = nil

但是
self
这里是类singleton实例,它是只读的。如何从这个类方法中推断typeof?

为什么需要它对类型严格?另外,为什么要使用
id
而不是类本身呢?您是否正在尝试创建一个通用的单例方法,可以自动推断出合适的类型?正如@duci9y所说,为什么不简单地为singleton类使用类名呢。当然,为您所使用的每一个单例类更改它并不需要太多工作create@Paulw11实际上,我正在创建一个单例宏。看来没有办法了