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 には存在しませんでした。
他の人も同様の問題を見ていますか?
fwiw、私は自分の .storyboard ファイルに触れていないので、autoLayout なしで動作するように設定されています。
作業中のアプリを引き続き維持できるようにするために、Xcode 4.5 の横に Xcode 4.4 をインストールする必要がありますか?