+1  A: 

I would double-check the output from NSLog() and make sure it's not an array that contains an NSString. That's what the error is telling you; you're passing an NSArray where an NSString is expected.

Rob Napier
Yes, you guys are correct. I was getting an array back instead of a string. I'll post a new (but perhaps still not quite right) version of the array load.
kindaran
+1  A: 

This error means that [rowImageList objectAtIndex:indexPath.row] is returning an array and not a string as expected.

The reason why a value is printed is because to print an array also you need to specify %@ in the NSLog statement.

Try debugging the method and check the class of [rowImageList objectAtIndex:indexPath.row]. It will most probably turn out to be an array.

lostInTransit
A: 

Are you sure your plist is key/string pairs, and you have not somehow wrapped the names in an array?

Kendall Helmstetter Gelner
I find myself not sure of anything at this point. The plist structure is Dictionary (root) > Array (child) > String (child of array) with 4 pairs of Array/String. I was attempting to copy another example of a plist. My assumption was that I was creating an NSDictionary structure where Array is the key and String is the value. Not sure how clear that explanation is.
kindaran
You're misunderstanding your plist. The keys in your plist are the strings "All Items", "Good Items", etc. The values are arrays. The Strings belong to the arrays. You should add NSLog(@"%@", searchFilterList) and see if you can understand your data structure. How are you loading this plist?
Rob Napier
From the way your array is structured, you'd want to use:cell.image = [UIImage imageNamed:[[rowImageList objectAtIndex:indexPath.row] objectAtIndex:0]];When you use allValues on the Dictionary, you get back an array, containing four arrays - each one of those arrays holds a string. The NSlog would have printed the array contents so it would look OK, but your image would be nil.
Kendall Helmstetter Gelner