Your problem is the predicate on this line
NSPredicate *resultPredicate = [NSPredicate predicateWithFormat:@"SELF contains[cd] '%@'",searchText];
Your _content array contains NSDictionaries which don't support contains operator. Also, single/double quotes cause %@ to be used literally. (From docs: Single or double quoting variables (or substitution variable strings) cause %@, %K, or $variable to be interpreted as a literal in the format string and so prevent any substitution
). Change this to:
NSPredicate *pred = [NSPredicate predicateWithFormat: @"SELF['city'] contains[cd] %@ OR SELF['state'] contains[cd] %@ OR SELF['cityText'] contains[cd] %@", searchText, searchText, searchText];
(assuming you want to search all three values: city, state, cityText)