Попытка найти проблему, с которой мы сталкиваемся с перерывами, что происходит на устройствах с низким уровнем памяти. Предполагаемая причина: однородный NSDateFormatter равен нулю.Может ли этот dispatch_once singleton когда-либо возвращать нуль?
Есть ли какая-либо возможная ситуация, когда одноэлементный шаблон ниже может возвращать нуль?
+ (NSDateFormatter *)dateFormatterUTC {
static NSDateFormatter *formatter;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
formatter = [[NSDateFormatter alloc] init];
[email protected]"yyyy-MM-dd HH:mm:ss ZZZ";
});
return formatter;
}
Насколько я знаю, я синглтон остаюсь на всю жизнь, но форматирование даты может вернуть дату, если оно не может правильно разобрать формат даты. – Andrea
Вообще-то я бы сказал, нет, но нет любая строго принудительная гарантия того, что alloc вернет non-nil так, я знаю, это * возможно * ... Но на практике нет. – ipmcc