gpt4 book ai didi

ios - 单例类中的 NSDateFormatter 还是每个部分一个以获得更便宜的代码?

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:59:49 25 4
gpt4 key购买 nike

我在一些线程中看到,用户创建类别来共享 NSDateFormatter 的静态实例。

我的应用有多个部分和一个单例类,每个部分有多个 View ,一些 View 确实使用了NSDateFormatter。我使用 singleton 在各部分之间共享数据,而无需重复网络连接。

我有点担心 formatters 的成本,为了解决这个问题,我可以在我的 singleton 类和 alloc< 上创建一个方法, init 一个 formatter 在那里,它会一直存在,我可以使用 category 或者我可以创建一个每个部分的主视图,所以至少我不需要每个 View 都有一个。

我想我的 singleton 上的方法应该是这样的,对吧?

+ (NSDateFormatter *)sharedDateFormatter
{
static NSDateFormatter *sharedDateFormatter = nil ;
if (sharedDateFormatter == nil)
{
sharedDateFormatter = [[NSDateFormatter alloc] init] ;
[sharedDateFormatter setLocale: [[[NSLocale alloc] initWithLocaleIdentifier: @"en_GB"] autorelease]] ;
[sharedDateFormatter setDateFormat: @"YYYY-MM-dd HH:mm:ss ZZZ"] ;
}
return sharedDateFormatter ;
}

我的问题是,降低 NSDateFormatters 成本的最佳做法是什么?

最佳答案

单例很好,但我会使用 dispatch_once 模式。

问题:NSDateFormatter 不是线程安全的。如果您仅在同一个线程上使用同一个 NSDateFormatter,或者例如在同一个串行调度队列中,那很好。否则,您必须使代码线程安全,或者使用多个 NSDateFormatters,每个线程一个。

关于ios - 单例类中的 NSDateFormatter 还是每个部分一个以获得更便宜的代码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25807642/

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