Я сделал пример проекта с вашим кодом, и он отлично работает - карта позиционируется в ожидаемом (кажется) регионе. Проверьте, инициализирован ли ваш mapView ivar (правильно ли установлены соединения в IB?)
Редактировать: В своем коде вы просто устанавливаете видимую область карты, но не добавляете к ней никаких примечаний (кроме автоматического отображения текущей позиции пользователя, которая всегда в Купертино, если вы тестируете на симуляторе). Чтобы прикрепить пин-код к вашей карте, вам нужно создать объект, подтверждающий протокол MKAnnotation
и добавить его в mapView:
// Sample example just to show annotation
// in your program you will likely need to use custom annotation objects
CLLocation* myLocation = [[CLLocation alloc] initWithLatitude:37.250556 longitude:-96.358333];
[mapView addAnnotation:myLocation];
Некоторые (не очень актуальные) комментарии к вашему коду:
- Вам не нужно инициализировать переменную местоположения текущим местоположением, так как вы сразу же переписываете ее значения координат
- Почему вы вызываете
[mapView setNeedsDisplay];
в viewDidUnload
методе? Я не уверен, что это может привести к серьезным проблемам, но вы должны использовать этот метод для очистки памяти (например, освобождения сохраненных розеток), а не для перерисовки вашего пользовательского интерфейса