Dictionaries cannot contain primitive values such as int and BOOL, only objects. The same thing goes for arrays. If you want to put an int or BOOL values into a dictionary or array, you have to convert it into NSNumber object first.
to get an integer number out of NSNumber object, [number intValue]
[number boolValue]