Следующая строка иногда выдает SIGABRT:
[[NSUserDefaults standardUserDefaults] синхронизировать];
Я понятия не имею, почему это происходит.Кстати, приложение многопоточное.
NSUserDefaults потокобезопасен, это не проблема. Вы перестали освобождать какой-либо объект в своих настройках по умолчанию, и синхронизация завершается сбоем, когда он находит его.
Это также может произойти, если вы добавили наблюдателя значения ключа в предпочтение и не реализовали
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context