Did something like this just this week. I decided that NSMutableDictionary was overly complicated so I used an NSMutableArray and handled the offset when iterating through the list.
The reason to use NSNumber is because the NS dictionaries and arrays only handle objects, so you need to convert your CGPoints to an an object that is then added to your collection object.