The following line sometimes throws SIGABRT:
[[NSUserDefaults standardUserDefaults] synchronize];
I have not idea why it happens. By the way, the app is multithreaded.
The following line sometimes throws SIGABRT:
[[NSUserDefaults standardUserDefaults] synchronize];
I have not idea why it happens. By the way, the app is multithreaded.
NSUserDefaults is thread safe, that's not the problem. You are over releasing some object in your defaults and synchronize is crashing when it finds it.
This can also happen if you added a Key Value Observer on a preference and did not implement
-(void)observeValueForKeyPath:(NSString *)keyPath ofObject:(id)object change:(NSDictionary *)change context:(void *)context