繁体   English   中英

在目标 C 中创建 singleton class 的另一个实例

[英]Creating another instance of a singleton class in Objective C

我有一个 singleton class 正在整个应用程序中使用。 我正在研究另一个 class,它需要向这个 singleton class 发送数据,但可以成批发送数据,这会冻结主线程。

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

单例,顾名思义,意味着只有一个实例在周围浮动。 应该调度冻结主线程的数据,class 的另一个实例对此无济于事。

随心所欲地创建另一个实例,但不要再将其称为 singleton。

实际上,您应该在另一个线程中发送此数据,并可能在发送数据时使用 NSLock,这样您就不会出现任何访问错误。

采用:

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

不要创建 singleton class 的另一个实例,否则您的应用程序的 rest 将无法访问它,因为它是 singleton。

希望能帮助到你。

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

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

您还可以实施延迟数据加载机制,当 object 需要来自 singleton 的信息时,singleton 会检查您的新 class 是否正在等待提供新信息,然后加载它。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM