c++ - 如何获取指向已从另一个类实例化的类的实例的指针?

标签 c++ objective-c

我有 4 个使用类 M1 的类(C1、C2、C3、C4)。 M1 保存模型和所有数据。 M1 可以由任何 Cx 类实例化(如果尚未实例化)。如果是,那么我不想创建它的另一个实例,只是获取指向存在的 M1 实例的指针,因此可以在那里使用数据。

我该怎么做?有没有办法搜索类的实例?

最佳答案

这是 the standard Cocoa (pseudo-)singleton implementation 的行为:

+ (instancetype)sharedInstance
{
    static id sharedInstance;
    static dispatch_once_t token;
    dispatch_once(&token, ^{
        sharedInstance = [[self alloc] init];
    });

    return sharedInstance;
}

让 Cn 类仅通过此类方法访问 M1,您将始终使用相同的实例。

其他类仍然可以使用+alloc+new 以通常的方式创建自己的M1 实例。 (这就是为什么这是一个伪单例。)

这种共享访问也不一定是 M1 公共(public)接口(interface)的一部分。您可以轻松地将其放入仅对 Cn 类可见的类别方法中。

关于c++ - 如何获取指向已从另一个类实例化的类的实例的指针?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35191376/

相关文章:

c++ - 如何在 Mac OS X 中获取 aio 信号处理程序的用户数据

c++ - 获取数字小数部分的最佳方法

c++ - 为什么我不能通过这个功能? C++

c++ - 在 vector 中找到最长的 'consecutive numbers' 条纹的最快方法是什么?

iphone - 带数字的字符串排序 last objective c

iphone - 在 willAnimateRotationToInterfaceOrientation 中禁用动画?

c++ - 如果析构函数有副作用并且对象是从另一个静态对象的析构函数访问的,如何进行静态反初始化?

objective-c - 在 Obj-C 中查找对对象实例的所有引用

c - 与 Objective-C/C 中的 GetLastError 类似的功能?

ios - 如何在 Objective-C 中获取 UIAlertView subview UITextField 值