Hi,
I've recently seen Sequel Pro crash too. Looking at the crash log, it seems similar to an issue I've been experiencing with my own app, PG Commander.
It looks like the app crashes when a view tries to access a delegate, but the delegate has been released already. Usually the delegate is either a window controller or a view controller, and this shouldn't happen because the view shouldn't live longer than the view controller.
However, in OS X 10.10.1 something seems to retain some views for some time even after view/window controllers release them. I have no clue why this is happening, and I believe this is a bug in OS X.
Unfortunately customers don't care whose fault it is that an application crashes, so I had to use a workaround in PG Commander. Every time a view controller is deallocated, it sets the delegate & datasource of all views that refer it to nil. Additionally, the target of segmented controls caused problems, so I also set them to nil.
In one of my view controllers I use the following to work around the issue:
-(void)dealloc {
[self removeFromSubviews:self.view];
}
-(void)removeFromSubviews:(NSView*)view {
for (id subview in view.subviews) {
if ([subview respondsToSelector:@selector(delegate)] && [subview performSelector:@selector(delegate)]==self) {
[subview performSelector:@selector(setDelegate:) withObject:nil];
}
if ([subview respondsToSelector:@selector(dataSource)] && [subview performSelector:@selector(dataSource)]==self) {
[subview performSelector:@selector(setDataSource:) withObject:nil];
}
if ([subview respondsToSelector:@selector(target)] && [subview performSelector:@selector(target)]==self) {
[subview performSelector:@selector(setTarget:) withObject:nil];
}
[self removeFromSubviews:subview];
}
}
This fixed the crashes in my case (obviously it doesn't fix the memory leaks), so adding this to every view controller / window controller might help.
Maybe adding something like this to every view controller / window controller in Sequel Pro would help?
Best regards,
Jakob Egger