我升级到 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 才能继续维护我的工作应用程序?