Iphone 如何处理所有的种族歧视
这可能有点像垃圾问题,但是面对iOS6中的所有贬值,您如何处理向后兼容性?我目前还不确定自己该如何处理这些问题 示例:Iphone 如何处理所有的种族歧视,iphone,objective-c,ios,ios6,Iphone,Objective C,Ios,Ios6,这可能有点像垃圾问题,但是面对iOS6中的所有贬值,您如何处理向后兼容性?我目前还不确定自己该如何处理这些问题 示例: UITextAlignment已被弃用,但使用NSTextAlignment将无法在使用iOS 5及更早版本的设备上运行 dismissModalViewControllerAnimated:也被弃用,取而代之的是dismissViewControllerAnimated:completion: 那么,如何/应该保持与旧iOS版本的兼容性呢?有没有办法在XCode 4.5模拟器
UITextAlignment
已被弃用,但使用NSTextAlignment
将无法在使用iOS 5及更早版本的设备上运行
dismissModalViewControllerAnimated:
也被弃用,取而代之的是dismissViewControllerAnimated:completion:
那么,如何/应该保持与旧iOS版本的兼容性呢?有没有办法在XCode 4.5模拟器中测试旧版本
谢谢你的建议 您可以下载较旧的模拟器版本。Xcode(本地应用程序菜单)>首选项>下载>单击以安装所需的模拟器版本。可用版本:4.3、5.0、5.1对于这些方法,您可以使用
响应选择器:
方法来检测新方法是否可用,例如:
if ([controller respondToSelector:@selector(dismissViewControllerAnimated:completion:)]) {
[controller dismissViewControllerAnimated:YES completion:nil];
} else {
[controller dismissModalViewControllerAnimated:YES];
}
要在代码中获取所有不推荐的方法,只需将应用程序的部署目标设置为iOS 6.0,并编译代码,然后每个不推荐的方法都会收到警告 要解决弃用问题,请使用以下方法之一: 1-
float-systemVersion=[[[UIDevice-currentDevice]systemVersion]floatValue];
如果(系统版本<6.0)
{
calendarArray=[self.eventStore日历];
}
其他的
{
calendarArray=[self.eventStore CalendarsForentyType:eEntityTypeEvent];
}
2-用户
respondtoselector
方法来检测对象是否响应此类选择器。4.3在Mountain Lion中不可用,您将需要一个带有旧mac OS X的mac。好的,很高兴知道这一点。到目前为止,我只是看到了一些丑陋的解决办法!在检测到不推荐的方法并解决它们之后,不要忘记将部署目标设置为原始值感谢提示,看起来很合理。不知何故,我希望避免那些有条件的检查。但我想可能是这样nescesary@patman您可以使用预处理器#if语句,以避免应用程序必须处理该语句。“这是一种更好的方法。”RileyE说的没错,但我认为在代码可读性方面也差不多。至少对于我可以想象的常量,我自己可以在以前的版本中定义新的常量<代码>#如果NDEF NSTEXTALIGNING
float systemVersion = [[[UIDevice currentDevice]systemVersion]floatValue];
if(systemVersion < 6.0)
{
calendarArray = [self.eventStore calendars];
}
else
{
calendarArray = [self.eventStore calendarsForEntityType:EKEntityTypeEvent];
}