NSCalendar CurrentCalendar问题

时间:2012-11-21 14:04:05

标签: iphone nsdate nscalendar

我的应用程序进行了大量的日历计算,因此我需要为大多数这些功能设置NSCalendar。现在调用[ NSCalendar currentCalendar ]似乎非常慢,因为其他人也评论过,所以我想我可以简单地缓存一份NSCalendar。然而,这个NSCalendar似乎不时产生垃圾,如果我在需要的时候创建一个新的NSCalendar,我就无法得到它。我假设它要么被取消分配,要么以某种方式被破坏,这是令人惊讶的,因为我正在使用“自动引用计数”

任何建议。

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

PSS

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

[R

1 个答案:

答案 0 :(得分:0)

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

NSCalendar *cal = [NSCalendar currentCalendar];

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

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

如果一切顺利,你应该回到__NSCFCalendar。