2014-09-22 3 views
1

Я новичок в разработке ios, исследовал случай на google и не нашел ничего связанного. Я развиваюсь в одной быстрой карте просмотра. Пока что так хорошо, в этом ViewController я вставляю UISegmentedControl с параметрами Satellite, Standard и Hybrid. Когда я открываю приложение со Стандартом, проблем не возникает, но когда я нажимаю на Satellite или Hybrid, экран становится черным, и в области отладки появляются следующие сообщения:UISegmentedControl для отображения mapTypes swift

Ошибка: CGContextScaleCTM: недопустимый контекст 0x0 Это серьезная ошибка. Это приложение или библиотека, которую он использует, использует недопустимый контекст и тем самым способствует ухудшению стабильности и надежности системы. Это уведомление об уходе: пожалуйста, исправьте эту проблему. фатальная ошибка в предстоящем обновлении. "

Ошибка: CGContextTranslateCTM: недопустимый контекст 0x0. Это серьезная ошибка. Это приложение или используемая им библиотека использует недопустимый контекст и тем самым способствует общей деградации стабильность системы и надежность способность. Это уведомление о любезности: устраните эту проблему. Это станет фатальной ошибкой в ​​предстоящем обновлении. "

Следит код

IBOutlet Var turcoMapaView: MKMapView! 

     
     
IBOutlet Var segmentControl: UISegmentedControl! 

     
     IBAction Func tipoDeMapa (sender: UISegmentedControl) { 

         {switch segmentControl.selectedSegmentIndex 

         case 0: 

             turcoMapaView.mapType = MKMapType.Standard 

         case 1: 

             turcoMapaView.mapType = MKMapType.Satellite 

         case 2: 

             turcoMapaView.mapType = MKMapType.Hybrid 

         default: 

             turcoMapaView.mapType = MKMapType.Standard 

         } 

       
     } 

Может кто-нибудь мне помочь

Благодаря

ответ

0

У вас есть несколько синтаксических ошибок в вашей функции Для того, чтобы сделать его легко проверить я изменил переменные.?.:

var a = 0 

@IBAction func changeMap (sender: UISegmentedControl) { 

    switch a { 

    case 0: 

     a = 1 
    case 1: 

     a = 2 
    case 2: 

     a = 3 
    default: 

     a = 4 
    } 

} 

Должно быть «@» перед выходами и действиями IB. имеют нижний регистр f в func. Ваши скобки находятся в неправильном месте в вашем заявлении коммутатора.

+0

Спасибо за ответ. Я внес изменения, и проблема продолжается, тип изменения карты, но получает нечетный экран при увеличении или уменьшении –

+0

Достаточно справедливо, я не рассматривал проблему с картой как таковую из-за проблем с синтаксисом. Придется ждать до сегодняшнего дня. –

+0

OK - это не очевидно для меня только из сегментированного управления. Обычно недопустимый контекст - это вызов чего-то еще, что является пустым или несуществующим. Можете ли вы опубликовать свой проект в github? –

0
IBOutlet Var turcoMapaView: MKMapView! 

IBOutlet Var segmentControl: UISegmentedControl! 

IBAction Func tipoDeMapa (sender: UISegmentedControl) { 

    switch segmentControl.selectedSegmentIndex { 

    case 0: 

     turcoMapaView.mapType = .Standard 

    case 1: 

     turcoMapaView.mapType = .Satellite 

    case 2: 

     turcoMapaView.mapType = .Hybrid 

    default: 

     turcoMapaView.mapType = .Standard 

    } 
} 

Это был бы правильный способ заставить вас управлять сегментом. вашей самой большой проблемой было ваше размещение фигурных скобок для вашего оператора switch.

Смежные вопросы