I ran into a bug last night with a SIGABRT. I was convinced it had to do with passing an enum as a parameter since I don't have much experience with enums besides when I first learned about them. When I replaced the enums with #defined constants, and was getting the same crash, I realized I was falling for the old "the problem is not where you think it is" mistake that is so easy to make. It turns out that the value I was setting with the enum was using a constant key defined in an external constant file that didn't match the key in the core data model. This whole story leads me to the question, when you get a SIGABRT crash, what are some of the things that immediately spring to mind as to the potential causes? Also, why did my bug result in a SIGABRT crash instead of an EXC_BAD_ACCESS?