Objective c 将应用程序从IOS4升级到IOS5
我有一个IOS5应用程序,它使用以下功能Objective c 将应用程序从IOS4升级到IOS5,objective-c,ios4,ios5,Objective C,Ios4,Ios5,我有一个IOS5应用程序,它使用以下功能 [self.presentingViewController dismissModalViewControllerAnimated:YES]; 谁在IOS4上工作得很好,但突然我发现IOS5上不存在这个函数,所以我不得不使用另一个等效函数 [self.parentViewController dismissModalViewControllerAnimated:YES] 现在我遇到了以下问题:IOS4用户无法安装我的应用程序,因为IOS4中不存在此
[self.presentingViewController dismissModalViewControllerAnimated:YES];
谁在IOS4上工作得很好,但突然我发现IOS5上不存在这个函数,所以我不得不使用另一个等效函数
[self.parentViewController dismissModalViewControllerAnimated:YES]
现在我遇到了以下问题:IOS4用户无法安装我的应用程序,因为IOS4中不存在此功能,更糟糕的是,该应用程序可在苹果的应用商店中使用,但仅适用于IOS5用户。另一个相关问题是,该应用程序突然停止在配备Wifi的iPad上运行,而连接到3G网络的iPad运行正常
在编译这个新版本的应用程序时,我是否错过了什么
提前谢谢 按以下方式编码:
if ([self respondsToSelector:@selector(parentViewController)])
[self.parentViewController ...];
else
[self.presentingViewController ...];
(未编译、未测试等)
关键是,您可以(也应该)测试功能,然后采取相应的行动。在这种情况下,如果iOS5方法可用,请使用该方法。如果不是,请使用旧的,这也意味着它是iOS5之前的设备。请按以下方式编码:
if ([self respondsToSelector:@selector(parentViewController)])
[self.parentViewController ...];
else
[self.presentingViewController ...];
(未编译、未测试等)
关键是,您可以(也应该)测试功能,然后采取相应的行动。在这种情况下,如果iOS5方法可用,请使用该方法。如果没有,请使用旧设备,这也意味着它是iOS5之前的设备。您可以检查是否存在如下属性:
if([self respondsToSelector:@selector(presentingViewController)])
[self.presentingViewController dismissModalViewControllerAnimated:YES];
else
[self.parentViewController dismissModalViewControllerAnimated:YES];
您可以检查属性是否存在,如下所示:
if([self respondsToSelector:@selector(presentingViewController)])
[self.presentingViewController dismissModalViewControllerAnimated:YES];
else
[self.parentViewController dismissModalViewControllerAnimated:YES];
要走的路有两条:
如果你必须在很多地方这样做,这是相当复杂的。您可以通过查看了解如何改进该示例。方法有两个:
如果你必须在很多地方这样做,这是相当复杂的。您可以看一看,了解如何改进该示例。我构建了一个类别,在iOS 4上添加了
presentingViewController
。
(它在iOS 5上禁用自身。)
它无缝地工作;只包含2个文件
请看
我希望这对你和我都有好处;它使你的代码更干净 我建立了一个类别,在iOS 4上添加了
presentingViewController
。
(它在iOS 5上禁用自身。)
它无缝地工作;只包含2个文件
请看
我希望这对你和我都有好处;它使你的代码更干净 UIViewController自iOS 2.0以来一直存在。你确定这是你的应用程序中丢失或损坏的内容吗?您是否有编译错误、链接错误或其他问题?@MichaelDautermann:区别在于,自iOS 2.0以来,就存在thatUIViewController的接收器。你确定这是你的应用程序中丢失或损坏的内容吗?你是否有编译错误、链接错误或其他问题?@MichaelDautermann:区别在于它的接收者