这可能是一个转储问题,但是如何处理面临iOS6中所有折旧的向后兼容性?我目前不确定如何处理它们。
示例:
UITextAlignment
已弃用,但使用NSTextAlignment
无法在使用iOS 5和之前的设备上使用
dismissModalViewControllerAnimated:
也不赞成使用dismissViewControllerAnimated: completion:
那么如何才能/应该保持与旧iOS版本的兼容性?有没有办法在XCode 4.5模拟器中测试旧版本?
感谢您的任何建议!
答案 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];
}