1
我已經使用這個NSDate Extension了一段時間,但現在它只是開始,同時呼籲崩潰[NSDate的currentCalendar]從multimple線程dateAtStartOfDay
方法和一些TIEM我收到了崩潰與EXC_BAD_ACCESS和存儲地址。EXC_BAD_ACCESS類別訪問靜態成員
問題是,當我在同一時間從多個線程訪問該static NSCalendar *sharedCalendar
時,我得到該錯誤。
共享訪問:
+ (NSCalendar *) currentCalendar
{
static NSCalendar *sharedCalendar = nil;
if (!sharedCalendar)
sharedCalendar = [NSCalendar autoupdatingCurrentCalendar];
return sharedCalendar;
}
我怎樣才能解決這個問題?
這裏是錯誤:
和打印對象時:(有時[的NSDate currentCalendar]返回地址)
'NSCalendar'不是線程安全的。您將不得不添加代碼以確保沒有對共享日曆的併發訪問。 – rmaddy
@rmaddy這就是爲什麼該方法將日曆存儲到靜態變量中,請參閱更新後的問題。 –
這並不改變你在多線程上同時在這個共享的靜態'NSCalendar'實例上調用方法的事實。 'NSCalendar'不支持。 – rmaddy