如何处理所有的诽谤

时间:2012-11-28 15:12:49

标签: iphone objective-c ios ios6

这可能是一个转储问题,但是如何处理面临iOS6中所有折旧的向后兼容性?我目前不确定如何处理它们。

示例:

UITextAlignment已弃用,但使用NSTextAlignment无法在使用iOS 5和之前的设备上使用

dismissModalViewControllerAnimated:也不赞成使用dismissViewControllerAnimated: completion:

那么如何才能/应该保持与旧iOS版本的兼容性?有没有办法在XCode 4.5模拟器中测试旧版本?

感谢您的任何建议!

3 个答案:

答案 0 :(得分:2)

要在代码中获取所有已弃用的方法,只需将应用程序的部署目标设置为iOS 6.0,然后编译代码,然后您将收到每个已弃用方法的警告。

要解决弃用问题,请使用以下方法之一:

1-

float systemVersion = [[[UIDevice currentDevice]systemVersion]floatValue];


    if(systemVersion < 6.0)
    {
        calendarArray = [self.eventStore calendars];
    }
    else
    {
        calendarArray = [self.eventStore calendarsForEntityType:EKEntityTypeEvent];
    }

2- USer respondToSelecter方法,用于检测对象是否响应此类选择器。

答案 1 :(得分:0)

您可以下载较旧的模拟器版本。 Xcode(本地应用程序菜单)&gt;偏好&gt;下载&gt;单击以安装所需的模拟器版本。可用版本:4.3,5.0,5.1

答案 2 :(得分:0)

对于这些方法,您可以使用respondToSelector:方法来检测新方法是否可用,例如:

if ([controller respondToSelector:@selector(dismissViewControllerAnimated:completion:)]) {
    [controller dismissViewControllerAnimated:YES completion:nil];
} else {
    [controller dismissModalViewControllerAnimated:YES];
}