当advertisingIdentifier为零时,我应该使用什么方法?

时间:2015-02-12 12:10:03

标签: ios objective-c

根据apple文档,有时会发现方法[ASIdentifierManager sharedManager].advertisingIdentifier可以返回nil值,我真的需要在我的应用中使用此值:

https://developer.apple.com/library/prerelease/ios/documentation/AdSupport/Reference/ASIdentifierManager_Ref/index.html#//apple_ref/occ/instp/ASIdentifierManager/advertisingIdentifier

  

如果值为nil,请稍后再次获取该值。有时候是这样的,   例如,在设备重新启动之后但在用户之前   已解锁设备。

我应该等多久?在这种情况下我应该采用什么方法?也许继续尝试获取advertisingIdentifier,直到它可用?或者我应该告诉用户尝试重新启动应用程序?有什么想法吗?

感谢。

2 个答案:

答案 0 :(得分:0)

您应手动创建UUID,并将其保存在首选项中。

NSString *UUID = [[NSUserDefaults standardUserDefaults] objectForKey:kApplicationUUIDKey];
if (!UUID) {
    CFUUIDRef uuid = CFUUIDCreate(NULL);
    UUID = (__bridge_transfer NSString *)CFUUIDCreateString(NULL, uuid);
    CFRelease(uuid);

    [[NSUserDefaults standardUserDefaults] setObject:UUID forKey:kApplicationUUIDKey];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

答案 1 :(得分:0)

当用户使用受保护的文件解锁手机并收听applicationProtectedDataDidBecomeAvailable

时,您可以有效地收到通知