我已经在我的iPhone应用程序中实现了推送通知,并且我在应用程序中使用了以下代码进行设备注册。
[[[UIDevice currentDevice] identifierForVendor] UUIDString];
以上代码在大多数设备中都能正常工作。但是,最近在iOS 7.1的某些iPhone 5s设备中,它返回null并且由于此应用程序崩溃。
答案 0 :(得分:5)
根据Apple文档
如果值为nil,请稍后再次获取该值。例如,在设备重新启动之后但在用户解锁设备之前发生这种情况
你可以在这里阅读:UIDevice
我们的应用程序遇到了同样的问题,我们最终使用的是
[[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString]
这里是它的参考:ASIdentifierManager
根据经验,在同一设备上重新安装时,标识符保持不变。我还没有发现它变化时的模式,但它确实......与identifierForVendor相同。
答案 1 :(得分:0)
由于这是一个古老的问题,我也面临同样的问题。所以如果他们遇到了这个问题,我觉得在这里回答其他问题。
NSString *uid=[[UIDevice currentDevice] uniqueIdentifier];
NSLog(@"udd:%@",uid);
答案 2 :(得分:0)
如果该值为零,请稍候,稍后再获取该值。例如,在重新启动设备之后但在用户解锁设备之前,就会发生这种情况。
例如,使用VoIP应用程序时可能会发生这种情况,该应用程序在重新启动时由系统启动,以允许该应用程序侦听传入的呼叫。