On May 9, 2012, at 1:09 PM, Alex Zavatone wrote:

> Back on iterating through a mapKit annotation array, I'm bending my brain 
> cell on this one.
> 
> All my annotations are instances of the MyLocation class
> 
> I added a method to expose the properties I want to save by returning a dict 
> to the class.
> 
> After all annotations are added, and I want to walk the array and build an 
> array of annotations, I do this:
> 
> - (IBAction)saveData:(id)sender
> {     
>               for (NSDictionary * myAnnotation in self.mapView.annotations)
>               {
>                       MyLocation *tempLocation = [[MyLocation alloc] init ];
>                       
>               //      test that the methods in the MyLocation objects 
> actually work on an empty object
>                       NSString *myString = [tempLocation name];
>                       NSDictionary *myDict = [tempLocation 
> returnCoordinatesInDict];
>                       NSDictionary *myStuffDict = [tempLocation 
> returnPropertiesInDict];
>               //      Try it with one of the MyLocation objects in the 
> annotation array 
>                       NSDictionary *myGoodsDict = [myAnnotation 
> returnPropertiesInDict];
> 
> Xcode will not let the last line compile with a "Receiver type 'NSDictionary' 
> for instance message does not declare a method with selector 
> 'returnPropertiesInDict' 
> 
> But if I comment out that line, set a breakpoint, it clearly shows that 
> myAnnotation is a myLocation instance just like tempLocation.
> 
> Does anyone know what I am missing here?


You lied to the compiler.

You told it that myAnnotation was an NSDictionary:
> for (NSDictionary * myAnnotation in self.mapView.annotations)

even though you knew it was suppose to be a MyLocation (and so it rightly 
protested when you tried do [myAnnotation returnPropertiesInDict] since 
NSDictionary doesn't implement returnPropertiesInDict.

Try:
for (MyLocation * myAnnotation in self.mapView.annotations)




Glenn Andreas                      gandr...@gandreas.com 
The most merciful thing in the world ... is the inability of the human mind to 
correlate all its contents - HPL

_______________________________________________

Cocoa-dev mailing list (Cocoa-dev@lists.apple.com)

Please do not post admin requests or moderator comments to the list.
Contact the moderators at cocoa-dev-admins(at)lists.apple.com

Help/Unsubscribe/Update your Subscription:
https://lists.apple.com/mailman/options/cocoa-dev/archive%40mail-archive.com

This email sent to arch...@mail-archive.com

Reply via email to