iOS生成唯一標(biāo)識(shí)符

在平日寫代碼的時(shí)候,經(jīng)常會(huì)遇到需要生產(chǎn)唯一標(biāo)識(shí)符的時(shí)候,比如現(xiàn)在做的這個(gè)實(shí)時(shí)通訊的項(xiàng)目,需要給每條消息給一個(gè)MessageID旷太,毫無疑問這個(gè)值應(yīng)該是唯一不會(huì)重復(fù)的展懈。
一般來說有這樣幾種方法销睁。(注意:本來打算是寫每次都隨機(jī)生成不一樣的標(biāo)識(shí)的方法的,順帶就想到每次生成固定字符的方法了。)
1.時(shí)間戳,
NSTimeInterval time = [[NSDate date] timeIntervalSince1970]*1000; double i=time; //NSTimeInterval返回的是double類型 NSString * uniqueString = [NSString stringWithFormat:@"%.f",i];
示例: 1463451753668
時(shí)間是不會(huì)回轉(zhuǎn)的,但是可以人為的調(diào)時(shí)間存崖。另外這里用時(shí)間戳做MessageID 對(duì)方設(shè)備時(shí)間和我不一致,也有可能會(huì)出現(xiàn)ID重復(fù)的情況冻记。
2、CFUUID
從iOS2.0開始来惧,CFUUID就已經(jīng)出現(xiàn)了冗栗。它是CoreFoundatio包的一部分,因此API屬于C語言風(fēng)格供搀。獲得的這個(gè)CFUUID值系統(tǒng)并沒有存儲(chǔ)隅居。每次調(diào)用CFUUIDCreate,系統(tǒng)都會(huì)返回一個(gè)新的唯一標(biāo)示符葛虐。
CFUUIDRef uuidRef = CFUUIDCreate(kCFAllocatorDefault); CFStringRef uuidStrRef= CFUUIDCreateString(kCFAllocatorDefault, uuidRef); CFRelease(uuidRef); NSString * retStr = [NSString stringWithString:(__bridge NSString *)uuidStrRef]; CFRelease(uuidStrRef);
示例: A2FEB483-CE39-4891-9A49-6C49ECA782E4
3胎源、NSUUID
NSUUID在iOS 6中才出現(xiàn),這跟CFUUID幾乎完全一樣屿脐,只不過它是OC接口涕蚤。:
NSString *uuid =[[NSUUID UUID] UUIDString];
示例: 9AB5953E-9D2F-48FA-9542-5857DAD2A3F9
4、identifierForVendor(不變,根據(jù)bundleID)
iOS6.0及以后,顧名思義的诵,是給Vendor標(biāo)識(shí)用戶用的赞季,每個(gè)設(shè)備在所屬同一個(gè)Vender的應(yīng)用里,都有相同的值奢驯。其中的Vender是指應(yīng)用提供商申钩,但準(zhǔn)確點(diǎn)說,是通過BundleID的DNS反轉(zhuǎn)的前兩部分進(jìn)行匹配瘪阁,如果相同就是同一個(gè)Vender撒遣,例如對(duì)于com.somecompany.appone,com.somecompany.apptwo 這兩個(gè)BundleID來說,就屬于同一個(gè)Vender管跺,共享同一個(gè)idfv的值义黎。和idfa不同的是,idfv的值是一定能取到的豁跑,所以非常適合于作為內(nèi)部用戶行為分析的主id廉涕,來標(biāo)識(shí)用戶,替代OpenUDID艇拍。
注意:如果用戶將屬于此Vender的所有App卸載狐蜕,則idfv的值會(huì)被重置,即再重裝此Vender的App卸夕,idfv的值和之前不同层释。
NSString *idfv = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
示例:9AFE0AE0-BD7E-4545-A519-F95B135B800B
5、advertisingIdentifier(不變快集,根據(jù)設(shè)備)
iOS6.0及以后贡羔。直譯就是廣告id廉白, 在同一個(gè)設(shè)備上的所有App都會(huì)取到相同的值,是蘋果專門給各廣告提供商用來追蹤用戶而設(shè)的乖寒,用戶可以在 設(shè)置|隱私|廣告追蹤 里重置此id的值猴蹂,或限制此id的使用,故此id有可能會(huì)取不到值楣嘁,但好在Apple默認(rèn)是允許追蹤的磅轻,而且一般用戶都不知道有這么個(gè)設(shè)置,所以基本上用來監(jiān)測推廣效果马澈,是綽綽有余了。
注意:由于idfa會(huì)出現(xiàn)取不到的情況弄息,故絕不可以作為業(yè)務(wù)分析的主id痊班,來識(shí)別用戶。
#import <AdSupport/AdSupport.h> NSString *adId = [[[ASIdentifierManager sharedManager] advertisingIdentifier] UUIDString];
示例: D4438804-35AA-455C-8078-927373D1EAC9
6摹量、已經(jīng)廢棄的
[UIDevice uniqueIdentifier]
還有一個(gè)生成iOS設(shè)備唯一標(biāo)示符的方法是使用iOS設(shè)備的Media Access Control(MAC)地址涤伐。一個(gè)MAC地址是一個(gè)唯一的號(hào)碼,它是物理網(wǎng)絡(luò)層級(jí)方面分配給網(wǎng)絡(luò)適配器的缨称。這個(gè)地址蘋果還有其他的名字凝果,比如說是硬件地址(Hardware Address)或是Wifi地址,都是指同樣的東西睦尽。
7器净、OpenUDID 與 FCUUID
iOS開發(fā):如何獲取設(shè)備唯一標(biāo)識(shí)?以及多個(gè)App間如何共享同一個(gè)設(shè)備唯一標(biāo)識(shí)当凡?

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末山害,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子沿量,更是在濱河造成了極大的恐慌浪慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 211,194評(píng)論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件朴则,死亡現(xiàn)場離奇詭異权纤,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)乌妒,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,058評(píng)論 2 385
  • 文/潘曉璐 我一進(jìn)店門汹想,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人撤蚊,你說我怎么就攤上這事欧宜。” “怎么了拴魄?”我有些...
    開封第一講書人閱讀 156,780評(píng)論 0 346
  • 文/不壞的土叔 我叫張陵冗茸,是天一觀的道長席镀。 經(jīng)常有香客問我,道長夏漱,這世上最難降的妖魔是什么豪诲? 我笑而不...
    開封第一講書人閱讀 56,388評(píng)論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮挂绰,結(jié)果婚禮上屎篱,老公的妹妹穿的比我還像新娘。我一直安慰自己葵蒂,他們只是感情好交播,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,430評(píng)論 5 384
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著践付,像睡著了一般秦士。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上永高,一...
    開封第一講書人閱讀 49,764評(píng)論 1 290
  • 那天隧土,我揣著相機(jī)與錄音,去河邊找鬼命爬。 笑死曹傀,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的饲宛。 我是一名探鬼主播皆愉,決...
    沈念sama閱讀 38,907評(píng)論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼艇抠!你這毒婦竟也來了亥啦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 37,679評(píng)論 0 266
  • 序言:老撾萬榮一對(duì)情侶失蹤练链,失蹤者是張志新(化名)和其女友劉穎翔脱,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體媒鼓,經(jīng)...
    沈念sama閱讀 44,122評(píng)論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡届吁,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,459評(píng)論 2 325
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了绿鸣。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片疚沐。...
    茶點(diǎn)故事閱讀 38,605評(píng)論 1 340
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖潮模,靈堂內(nèi)的尸體忽然破棺而出亮蛔,到底是詐尸還是另有隱情,我是刑警寧澤擎厢,帶...
    沈念sama閱讀 34,270評(píng)論 4 329
  • 正文 年R本政府宣布究流,位于F島的核電站辣吃,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏芬探。R本人自食惡果不足惜神得,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,867評(píng)論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望偷仿。 院中可真熱鬧哩簿,春花似錦、人聲如沸酝静。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,734評(píng)論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽别智。三九已至宗苍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間亿遂,已是汗流浹背浓若。 一陣腳步聲響...
    開封第一講書人閱讀 31,961評(píng)論 1 265
  • 我被黑心中介騙來泰國打工渺杉, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留蛇数,地道東北人。 一個(gè)月前我還...
    沈念sama閱讀 46,297評(píng)論 2 360
  • 正文 我出身青樓是越,卻偏偏與公主長得像耳舅,于是被迫代替她去往敵國和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子倚评,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,472評(píng)論 2 348

推薦閱讀更多精彩內(nèi)容