Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/114.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何检查iOS SDK不推荐的方法是否不再有效或可用?_Ios_Deprecated - Fatal编程技术网

如何检查iOS SDK不推荐的方法是否不再有效或可用?

如何检查iOS SDK不推荐的方法是否不再有效或可用?,ios,deprecated,Ios,Deprecated,在iOS5中,苹果不赞成使用[UIDevice uniqueIdentifier](参见此处) 它目前仍然可以工作,但显然我们希望将我们的应用程序从使用它迁移出去。我们不能一刀切地退出,但我们正在推出一种迁移策略,在不将用户数据绑定到实际物理设备的情况下持久化用户数据(我们滥用设备UDID的唯一原因) 所以我有一个新的UDID要使用 我担心的是,有些用户懒得升级我们的应用程序,最终会更新他们的iOS版本,从而导致不推荐的呼叫无法继续工作。我们的代码假设uniqueidentifier调用保证始终

在iOS5中,苹果不赞成使用
[UIDevice uniqueIdentifier]
(参见此处)

它目前仍然可以工作,但显然我们希望将我们的应用程序从使用它迁移出去。我们不能一刀切地退出,但我们正在推出一种迁移策略,在不将用户数据绑定到实际物理设备的情况下持久化用户数据(我们滥用设备UDID的唯一原因)

所以我有一个新的UDID要使用

我担心的是,有些用户懒得升级我们的应用程序,最终会更新他们的iOS版本,从而导致不推荐的呼叫无法继续工作。我们的代码假设uniqueidentifier调用保证始终“工作”

我如何检查uniqueIdentifier调用是否成功,如果没有,如何使用上面提到的问题中提供的替代UDID


我可以检查设备是否响应选择器吗?我可以检查无UDID吗?

您可以像往常一样使用
响应选择器:
进行检查。我已经用一个选择器进行了验证,它是:

#导入
...
MPMoviePlayerController*mc=[[MPMoviePlayerController alloc]initWithContentURL:nil];
if([mc respondsToSelector:@selector(backgroundColor)]){
NSLog(@“是”);
}否则{
NSLog(@“NO”);/*在iOS 5下,它位于此处*/
}
...

[戴上魔鬼代言人的帽子]如果你担心如果你的用户不更新到你的应用程序的最新版本,它将与较新版本的iOS决裂,为什么他们会更新到你的应用程序的较新版本,当不存在不推荐的功能时,会“优雅地”降级D@PeterM:这是一个很好的观点,但不幸的是我无法控制。但是我可以控制我已经发现了这个问题的事实,我们很快就会有一个新版本,所以我可以解决这个问题,至少我感觉很好。另外,我不确定下一个版本何时发布,它将实现迁移,因此下一个版本应该尽可能健壮。我同意您需要生成尽可能健壮的代码。但是,正如您所知,您无法控制您的用户,因此没有必要担心他们,对旧版本采取“去你的吧”(以最好的方式)的态度可以真正解放您的开发工作!没错。我想更大的问题是,我可能在一段时间内无法获得另一个发布工具,因此如果我们无法将用户从UDID迁移出去,那么如果/当UDID支持被删除时,最新的版本应该不会中断。
#import <MediaPlayer/MediaPlayer.h>
...
MPMoviePlayerController *mc = [[MPMoviePlayerController alloc] initWithContentURL:nil];
if ([mc respondsToSelector:@selector(backgroundColor)]) {
    NSLog(@"YES");
} else {
    NSLog(@"NO"); /* under iOS 5 it goes here */
}
...