2

我的应用程序做了很多日历计算,所以我需要为大多数这些功能设置一个 NSCalendar。现在调用[ NSCalendar currentCalendar ]似乎非常慢,因为其他人也评论了所以我想我可以简单地缓存 NSCalendar 的副本。然而,这个 NSCalendar 似乎不时会产生垃圾,如果我在需要时创建一个新的 NSCalendar,我就不会得到这些垃圾。我假设它要么被释放,要么以某种方式损坏,这令人惊讶,因为我正在使用“自动引用计数”

有什么建议么。

PS这可能是因为NSCalendar不是线程安全的吗?

PSS

我最终从主线程设置了我的 CurrentCalendar。这似乎解决了这个问题。如果有人对此有任何意见,请告诉我。

R

4

1 回答 1

0

作为调查步骤,我建议您记录对象的类以查看它是否以某种方式更改为另一个对象。例如,如果您有以下代码:

NSCalendar *cal = [NSCalendar currentCalendar];

然后稍后(特别是如果您可以判断数据何时损坏),您将执行以下操作:

NSLog(@"Calendar class: %@", [cal class]);

一切顺利后,您应该取回 __NSCFCalendar。

于 2012-11-21T14:49:42.397 回答