我的应用程序进行了大量的日历计算,因此我需要为大多数这些功能设置NSCalendar。现在调用[ NSCalendar currentCalendar ]
似乎非常慢,因为其他人也评论过,所以我想我可以简单地缓存一份NSCalendar。然而,这个NSCalendar似乎不时产生垃圾,如果我在需要的时候创建一个新的NSCalendar,我就无法得到它。我假设它要么被取消分配,要么以某种方式被破坏,这是令人惊讶的,因为我正在使用“自动引用计数”
任何建议。
PS这可能是因为NSCalendar不是线程安全的吗?
PSS
我最终从主线程设置了我的CurrentCalendar。这似乎解决了这个问题。如果有人对此有任何意见,请告诉我。
[R
答案 0 :(得分:0)
作为一个调查步骤,我建议您记录对象的类,看看它是否以某种方式被更改为另一个对象。例如,如果您有此代码:
NSCalendar *cal = [NSCalendar currentCalendar];
然后稍后(特别是如果您可以判断数据何时被破坏),您将执行此操作:
NSLog(@"Calendar class: %@", [cal class]);
如果一切顺利,你应该回到__NSCFCalendar。