gpt4 book ai didi

objective-c - 复制单例实例以存储在数组中

转载 作者:行者123 更新时间:2023-11-28 19:21:45 26 4
gpt4 key购买 nike

我想获取一个被多个 View Controller 使用的单例类,复制它,并将其保存到一个数组中,该数组将显示在另一个 View Controller 中,其中的 TableView 将显示该类的多个实例。该数组最终将被存档,以便使用相同的数据进行检索。

在尝试此操作之前,有没有一种方法可以复制此单例实例,将其保存到数组中,重新初始化它以供下次使用,等等(无需获得与之前未初始化的对象完全相同的对象)?

最佳答案

这不是你想要的单例。
单例必须始终返回相同的实例
你想要的是一个普通的类,它可能有一个方便的类方法来为你提供一些预填充的对象。

如果可以创建一个对象的多个实例,那么它就不再是单例了。

但是您的单例类可以包含您希望显示的其他类的可变数量的实例。
因此,以这种方式,您所要求的是可能的,但没有单例上的复制部分。


I'm not sure where you are going with this and if it's the best way to go but here is an idea :

你可以有一个 singleton 类来保存另一个类的数组。所以你可以像这样调用你的 singleton

TheSingletonClassName *mySingleton = [TheSingletonClassName sharedTheSingletonClassName];
OtherClass *myOtherClass = [mySingleton newOtherClassInstancePlease];

在您的 newOtherClassInstancePlease 方法中,您实现了将新对象存储到数组中的必要操作,您可以像这样分发它

NSArray *otherClassArray = [mySingleton allOtherClasses];

或者 NSMutableArray,如果你愿意的话。

有了它,您就可以共享、创建新的甚至删除对象。如果你在你的单例上实现了必要的方法。
但同样不要复制单例,如果单例实现良好,发送一个复制调用应该抛出异常,或者返回存在的单例实例。

关于objective-c - 复制单例实例以存储在数组中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8395065/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com