我是第一次使用 UIGestureRecognizer,我希望我的应用程序在 iOS 3.0 及以上版本上运行。由于Apple明确声明该库在iOS 3.2及更高版本中可用,因此我使用了以下代码:

// Make sure that Gesture recognition technology is supportted by the device SDK version
if ([UIGestureRecognizer instancesRespondToSelector:@selector(initWithTarget:action:)])
{
    [self initGestureRecognizers];
}

令人惊讶的是,当我在运行 SDK3.0 的唯一目标上运行该应用程序时,它工作正常。


我将条件替换为以下内容:

if ([[[UIDevice currentDevice] systemVersion] compare:@"3.2"] != NSOrderedAscending) 
{ 
    [self initGestureRecognizers]; 
}

我很想得到有关它的评论。

谢谢

有帮助吗?

解决方案

这可能是因为Uigesturerecognizer在3.2之前被认为是私人的。如果您使用3.0下的UigeSturerognizer,如果某些事情是越野车或不完全按预期工作,请不要感到惊讶。

其他提示

每个 iOS 版本中都有大量未记录的 API,Apple 也确实提到了这一点。然而,使用这些未记录的 API 会成为应用商店拒绝的理由。使用在操作系统的一个给定版本/修订版中未记录但在另一个版本/修订版中记录的 API 很可能存在被拒绝的风险,而您的应用程序支持这两种版本/修订版。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top