在Objective C中创建单个类的另一个实例

时间:2012-04-05 20:32:27

标签: objective-c ios

我有一个在整个应用程序中使用的单例类。我正在研究另一个需要向这个单例类发送数据的类,但是可以发送数据,这会冻结主线程。

我应该创建这个单例类的另一个实例,还是应该创建一个数据导入实用程序作为单独的类?

4 个答案:

答案 0 :(得分:5)

Singletons,顾名思义,意味着只有一个 单个 实例。应该调度冻结主线程的数据,另一个类的实例也无济于事。

答案 1 :(得分:0)

创建您想要的另一个实例,但不要再称它为单例。

答案 2 :(得分:0)

实际上,您应该在另一个线程中发送此数据,并且可能在发送数据时使用NSLock,因此您没有任何访问错误。

使用:

[self performSelectorOnBackGround:@selector(sendDataToSingleton:) withObject:@"data to send"];

不要创建单例类的另一个实例,否则应用程序的其余部分将无法访问它,因为它是一个单例。

希望它有所帮助。

答案 3 :(得分:0)

根据定义,您应该只有一个单例实例。如果它是一个正确构造的单例,则不应该有超过1个!

如果您遇到主线程无响应的问题,请将需要加载的数据分解为较小的卡盘。这样,在加载不同数据块之间,主线程可以处理它需要的任何事件,而其他对象可以访问单例中的数据。

您还可以实现一个惰性数据加载机制,当一个对象需要来自单例的信息时,单例检查您的新类是否在等待为其提供新信息然后加载它。