iOS 9 Spritekit双击不适用于iPhone 6S

现在我一直在构build一个SpriteKit游戏。 它是一个纸牌游戏,允许双击特定行为的卡片精灵。 现在,我们在iOS 9中,双击在iPhone 6上完全不起作用。 在iOS8,所有设备上都可以正常工作。

在我的SKScene ,我使用touchesBegan方法来检测水龙头:

 -(void)touchesBegan:(NSSet *)touches withEvent:(UIEvent *)event { UITouch *touch = [touches anyObject]; CGPoint touchLocation = [touch locationInNode:self]; if(touch.tapCount==2) { NSLog(@"double-tap, but not for iPhone 6s"); } } 

有没有什么新的iOS9或6s专门(3D触摸?),需要现在执行SpriteKit游戏?

我想要注意的是,这在iPhone 6s模拟器工作正常,但它不在实际的设备上。

此外, touch.tapCount会报告touch.tapCount等水龙头,但完全跳过第二个水龙头。

根据https://developer.apple.com/library/prerelease/ios/releasenotes/General/RN-iOSSDK-9.1/

 UIKit Note On 3D Touch capable devices, touch pressure changes cause touchesMoved:withEvent: to be called for all apps running on iOS 9.0. When running iOS 9.1, the method is called only for apps linked with the iOS 9.0 (or later) SDK. Apps should be prepared to receive touch move events with no change in the x/y coordinates. 

所以如果这个问题可以由touchMoved引起的。

好的,所以,双击是工作,有点。 在iPhone 6s上,游戏虽然通过skView.showsFPS = YES;报告60 fps skView.showsFPS = YES; ,运行非常疲软。 我刚刚发现,如果我慢慢地敲一下,就可以使水龙头工作,就像在第一个和第二个水龙头之间等待一整秒钟一样。

现在发现为什么这个游戏在这个设备上如此之慢。 它甚至不是iOS 9的问题,因为游戏在我的5s W / iOS 9上工作得很好。