использование iOS 6.0 SDK и сборка для iOS 5 Target приводит к сбою UIScrollView setMinimumZoomScale при работе на симуляторе iOS 5
я обновился до Xcode 4.5 и начал использовать iOS SDK 6.0:
У меня есть универсальное приложение, которое было разработано с Xcode 4.4 и iOS SDK 5.1
и он работал на всех протестированных устройствах и симуляторах без каких-либо глюков.
в надежде, что он продолжит работать на iPhone 5, я хотел предоставить правильный образ запуска и позволить ему работать.
многие части приложения работают без изменений, но одна часть этого не делает: изображение, которое я поместил в UIScrollView, не панорамируется. это всегда работало ранее, но не на симуляторе iOS 6.
к настоящему моменту проблемы, хотя: когда я начал работать на симуляторах iOS 5.0 или iOS 5.1, в моем журнале отладки я увидел исключение, которое выдается следующим образом:
-[NSKeyValueMethodSetter setMaximumNumberOfTouches:]: unrecognized selector sent to instance 0x6ddab20
сканирование стека показывает, что код, пытающийся сделать этот вызов,UIScrollView setMinimumZoomScale
.
мой код для вызова setMimimumZoomScale выглядит следующим образом:
CGFloat widthScale = self.scrollView.bounds.size.width / self.image.size.width;
CGFloat heightScale = self.scrollView.bounds.size.height / self.image.size.height;
// just reset the zoom scales; leave center and everything else where possible
self.scrollView.minimumZoomScale = MIN(1.0, MIN(widthScale, heightScale));
self.scrollView.maximumZoomScale = 4.0;
выброшенное исключение (и последующий сбой) возникает при первом вызове setMimimumZoomScale с сообщением, отмеченным выше.
Я предполагаю, что Xcode 4.5 использует код для setMinimumZoomScale, который вызывает отправку этого сообщения, которое, вероятно, существует в библиотеке для iOS 6, но никогда не было в iOS 5.
другие видят похожую проблему?
Кстати, я не трогал мои файлы .storyboard, поэтому они все равно будут работать без autoLayout.
Должен ли я вернуться и установить Xcode 4.4 рядом с Xcode 4.5, чтобы иметь возможность продолжать поддерживать мое рабочее приложение?