Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.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
Xcode 在多个nib文件之间共享singleton NSController_Xcode_Macos_Cocoa - Fatal编程技术网

Xcode 在多个nib文件之间共享singleton NSController

Xcode 在多个nib文件之间共享singleton NSController,xcode,macos,cocoa,Xcode,Macos,Cocoa,如何在多个nib文件之间共享singletonNSController?与Xcode提供的“共享用户默认控制器”类似?这是我在这种情况下使用的代码: @implementation MySingletonClass static MySingletonClass* instance = 0; - (id) init { if ( instance ) return instance; return ( instance = self = [su

如何在多个nib文件之间共享singleton
NSController
?与Xcode提供的“共享用户默认控制器”类似?

这是我在这种情况下使用的代码:

@implementation MySingletonClass

static MySingletonClass*    instance    = 0;

- (id) init {

    if ( instance )
        return instance;

    return ( instance = self = [super init] );
}

+ (MySingletonClass*) shared {

    static dispatch_once_t pred;

    dispatch_once(&pred, ^{
        instance = [[MySingletonClass alloc] init];
    });

    return instance;
}

@end

绝对。。。只要你的单例类得到了正确的实现。只需将其添加到每个nib中。您所说的“正确实现”是什么意思?似乎我的nib文件跳过了我的
sharedXyzController()
方法,每个nib文件调用
init
一次。仅供参考,我将一个
NSObject
拖到每个nib文件中,并将其类设置为
MyXyzController
。我的意思是,“正确实现的”单例实际上不会让您分配多个实例。并且
init
和类似的方法(copy等)返回共享实例。