1

我是第一次使用 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]; 
}

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

谢谢

4

2 回答 2

5

这可能是因为 UIGestureRecognizer 在 3.2 之前被认为是私有的。如果您在 3.0 下使用 UIGestureRecognizer,如果某些事情有问题或无法按预期工作,请不要感到惊讶。

于 2010-09-12T16:01:57.503 回答
1

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

于 2010-09-12T16:03:52.040 回答