文件应用iOS开发-用keychain替代UDID

本文纯属个人见解,是对前面学习的总结,如有描述不正确的地方还请高手指正~

    

    从2013-5-1日开始苹果就禁止对UUID的应用的通过了。所以我们需要用一些方法替换,上面我就是用keychain的访问替换掉UUID的。

    那么,关于Keychain的应用,Apple供给了一个叫GenericKeychain的例子程序,在这里:http://developer.apple.com/library/ios/#samplecode/GenericKeychain/Listings/Classes_KeychainItemWrapper_h.html#//apple_ref/doc/uid/DTS40007797-Classes_KeychainItemWrapper_h-DontLinkElementID_9,其中封装了一个简化Keychain操纵的类:KeychainItemWrapper,可以拿来直接使用。

    

    每日一道理
父亲对于儿子来说,是座耸立的高山,而儿子只是颗石子,源于山,却并不了解山。生活中诸多爱的密码,是需用细节来解读的,在亲情的沃土上,要想搞得最美的果实,惟有期待那存在于瞬间的心与心的共鸣,爱与爱的默契。

    1、首先应该导入库文件:Security.framework 且需要把文件KeychainItemWrapper.h和KeychainItemWrapper.m导入到工程,并引用头文件:#import"KeychainItemWrapper.h"

    2、代码例子:

NSString *str =nil;
    KeychainItemWrapper *keychainItem = [[KeychainItemWrapper alloc] initWithIdentifier:@"UUID" accessGroup:@"com.xxx.xxx"];
    
    NSString *uuidStr = [keychainItem objectForKey:(id)kSecValueData];
    if (uuidStr.length == 0) {
        NSString *myUUIDStr = [[[UIDevice currentDevice] identifierForVendor] UUIDString];
        [keychainItem setObject:myUUIDStr forKey:(id)kSecValueData];
        str = myUUIDStr;
    }
    else{
        str = [keychainItem objectForKey:(id)kSecValueData];
    }
    NSLog(@"======%@",str);
    return str;

    导入Security.framework是因为KeychainItemWrapper文件只是对Security一个封装,更加利于我们的调用。

    

文章结束给大家分享下程序员的一些笑话语录: 据说有一位软件工程师,一位硬件工程师和一位项目经理同坐车参加研讨会。不幸在从盘山公路下山时坏在半路上了。于是两位工程师和一位经理就如何修车的问题展开了讨论。
硬件工程师说:“我可以用随身携带的瑞士军刀把车坏的部分拆下来,找出原因,排除故障。”
项目经理说:“根据经营管理学,应该召开会议,根据问题现状写出需求报告,制订计划,编写日程安排,逐步逼近,alpha测试,beta1测试和beta2测试解决问题。”
软件工程说:“咱们还是应该把车推回山顶再开下来,看看问题是否重复发生。”

posted @ 2013-05-13 23:50  坚固66  阅读(202)  评论(0编辑  收藏  举报