What Happens when
Null is set to
NSString? and saved in
NSUserDefaults?? Will it crash since it treats it like a deallocated instance??
You are mixing metaphors. First, sprinkle around some NSLog messages reporting on the object type, before saving then on retrieval (NSStringFromClass[obj class]). You did not make it clear if you are using a C based SQLite interface or Core Data with a SQLite backing store, so update your question.
Lastly, if you message an object of class A with messages that only class B responds to, you will get exceptions pointing that error out. A dealloced error is totally different, and indicates your memory management is faulty. To track down the latter error, enable Zombies and break on any message send to one (many Q&As on how to do that here).