gpt4 book ai didi

objective-c - 我应该保留 NSCalendar 对象以供持久使用吗?

转载 作者:行者123 更新时间:2023-12-03 16:50:51 25 4
gpt4 key购买 nike

在类似日历的应用程序或应用程序的一部分中,我需要在许多例程中使用(公历)日历,这意味着我需要多次分配初始化和释放相同的 NSCalendar 对象。我应该在我的长持久 Controller 实例中保留一个 NSCalendar (比如公历)作为 ivar(@property(nonatomic,retain)) 吗?

或者它的实例方法是可重入/线程安全的吗?

最佳答案

一般来说,您应该保留日历和日期格式化程序,因为第一次创建和/或使用它们的成本很高(我很难发现这一点)。

但是,Thread Safety Summary将 NSCalendar 和 NSFormatter (NSDateFormatter 的父类(super class))都列为“线程不安全”,并表示:

The following classes and functions are generally not thread-safe. In most cases, you can use these classes from any thread as long as you use them from only one thread at a time. Check the class documentation for additional details.

我建议寻找一种方法来做到这两点。这是使用 NSThread 自己创建线程的优点之一:您可以将每个线程的日历存储在其 thread dictionary 中。 .

否则,您只需每次都创建并丢弃每个日历并支付性能成本。

关于objective-c - 我应该保留 NSCalendar 对象以供持久使用吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7926593/

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