if ([MyView respondsToSelector:@selector(traitCollection)] &&
[MyView.traitCollection respondsToSelector:@selector(forceTouchCapability)] &&
MyView.traitCollection.forceTouchCapability == UIForceTouchCapabilityAvailable) {
return YES;
}
要点は、iOS 7とiOS 8もサポートしている場合は、両方の条件を確認することを忘れないでください:[MyView respondsToSelector:@selector(traitCollection)]と[MyView.traitCollection respondsToSelector:@selector(forceTouchCapability)].
最初のチェックを維持すると、アプリは iOS 7 では正常に動作しますが、iOS 8 ではクラッシュします。基本的に、Apple は iOS 8 でプロパティを導入しましたが、iOS 9 でのみプロパティをtraitCollection追加しました。forceTouchCapability
UITraitCollection.hから:
@property (nonatomic, readonly) UITraitCollection *traitCollection NS_AVAILABLE_IOS(8_0);
@property (nonatomic, readonly) UIForceTouchCapability forceTouchCapability NS_AVAILABLE_IOS(9_0);
PS: アプリが App Store でクラッシュし始めた後、苦労して学びました。