It looks like what is already stored in your user preferences is not a dictionary.
You could change the test at the beginning like this:
if (! [[[NSUserDefaults standardUserDefaults] objectForKey:@"favourites"]
isKindOfClass:[NSDictionary class]])
This will cover the case that there is nothing in your user defaults, or that you have an object there that isn't a dictionary.