The required property of MKAnnotation: @property (nonatomic, readonly) CLLocationCoordinate2D coordinate (page 116) is set in the default initializer like so: coordinate = c; (page 117). This actually will not compile in Xcode 4.5.2, but no problem: change the code to [self setCoordinate:c] and build succeeds. My question is: how is it that a property designated as read only has a setter? I thought readonly properties cannot be “set”, i.e. they should only have get accessor? Thanks.