Что можно использовать с [UIDevice currentDevice]? - PullRequest
0 голосов
/ 20 августа 2011

Что может быть с [UIDevice currentDevice], например, uniqueIdentifier? Спасибо!

Ответы [ 3 ]

5 голосов
/ 19 апреля 2013

Поскольку это немного устарело, сейчас я просто даю актуальный ответ.

Поскольку Apple счел целесообразным запретить разработчикам использовать [[UIDevice currentDevice] uniqueIdentifier]; с iOS 6 и далее, которые Suhail Patels отвечают советам для использования. Теперь они начали призывать разработчиков использовать [[UIDevice currentDevice] identifierForVendor];, но некоторые разработчики не понимают, разрешено ли им использовать uniqueIdentifier, даже если они все еще разрабатываются для iOS 5 и ниже или нет. Apple немного суетился по этому поводу, просто говоря:

"Apps that use the `UDID` will be rejected in the App Store review process.." 

Давай Apple расскажи немного подробнее.

В любом случае, из-за этой путаницы некоторые разработчики начали использовать OpenUDID для получения уникального идентификатора. Вот некоторый код о том, как его можно использовать:

    if ([[UIDevice currentDevice] respondsToSelector:@selector(identifierForVendor)]) {
        // Use: [[[UIDevice currentDevice] identifierForVendor] UUIDString];
    } else {
        // Use: [OpenUDID value];
    }

EDIT

Некоторые разработчики также считают целесообразным начать использовать MAC-адрес, поскольку UDID устарела. Это связано с тем, что MAC-адреса основаны на оборудовании и поэтому не могут быть изменены. Для тех из вас, кто хочет использовать MAC-адрес, Apple предоставил пример кода на Получение MAC-адреса .

3 голосов
/ 08 сентября 2011

Для iOS 5 вы можете создать новый, но не уникальный идентификатор с помощью этого:

CFUUIDRef UIID = CFUUIDCreate(NULL);
CFStringRef UIIDString = (CFUUIDCreateString(NULL, UIID));
NSString *string = [NSString stringWithFormat:@"%@",UIIDString];     

Сохраните его в файл и используйте его как уникальный идентификатор

2 голосов
/ 20 августа 2011

Все свойства и методы, связанные с объектом UIDevice, описаны в Ссылка на класс UIDevice

Для доступа к уникальному идентификатору вы можете сделать что-то вроде:

NSString *identifier = [[UIDevice currentDevice] uniqueIdentifier];
...