How convert devicetoken (NSString) into NSData

deviceToken是个nsdata (nslog like this:<35b79913 2f94bf8d 3f7a863f 398410ca d6c61428 bae03de4 bf86b656 1b1042bf>

我把它转化为nsstring(35b79913 2f94bf8d 3f7a863f 398410ca d6c61428 bae03de4 bf86b656 1b1042bf)后怎么再转换为nsdata(要nslog 依然是:<35b79913 2f94bf8d 3f7a863f 398410ca d6c61428 bae03de4 bf86b656 1b1042bf>)

后面在老外的提醒下才想起来打印的那些字符对应的是十六进制字符串,不是bytes。糊涂了。。。所以问题就转化为了16进制字符串转化为nsdata的问题

-(NSData *) dataFromHexString:(NSString *) hexstr{
    NSMutableData *data = [[NSMutableData alloc] init];
    NSString *inputStr = [hexstr uppercaseString];

    NSString *hexChars = @"0123456789ABCDEF";

    Byte b1,b2;
    b1 = 255;
    b2 = 255;
    for (int i=0; i<hexstr.length; i++) {
        NSString *subStr = [inputStr substringWithRange:NSMakeRange(i, 1)];
        NSRange loc = [hexChars rangeOfString:subStr];

        if (loc.location == NSNotFound) continue;

        if (255 == b1) {
            b1 = (Byte)loc.location;
        }else {
            b2 = (Byte)loc.location;

            //Appending the Byte to NSData
            Byte *bytes = malloc(sizeof(Byte) *1);
            bytes[0] = ((b1<<4) & 0xf0) | (b2 & 0x0f);
            [data appendBytes:bytes length:1];

            b1 = b2 = 255;
        }
    }

    return data;}

How convert devicetoken (NSString) into NSData

时间: 2024-10-11 04:33:32

How convert devicetoken (NSString) into NSData的相关文章

NSString、NSData、char* 类型之间的转换-备

1. NSString转化为UNICODE String: (NSString*)fname = @“Test”; char fnameStr[10]; memcpy(fnameStr, [fname cStringUsingEncoding:NSUnicodeStringEncoding], 2*([fname length])); 与strcpy相比,memcpy并不是遇到'\0'就结束,而是一定会拷贝完n个字节 2. NSString 转化为 char * NSString * str=

iOS中NSString,NSData和char的相互转换,JSON串转化为NSDictionary或NSArray

1.NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.NSData 转换成char* NSData

iOS NSString 和NSData 转换

NSString 转换成NSData 对象 NSData* xmlData = [@"testdata" dataUsingEncoding:NSUTF8StringEncoding]; NSData 转换成NSString对象 NSData * data; NSString *result = [[NSString alloc] initWithData:data  encoding:NSUTF8StringEncoding]; NSData 转换成char* NSData *dat

iOS NSString 与NSData转化

1. 字符串转Data NSString * str =@"str"; NSData *data =[str dataUsingEncoding:NSUTF8StringEncoding]; 2.NSData 转NSString NSString * str  =[[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 3.data 转char NSData *data; char * haha=[data 

NSArray与NSString、NSData,NSDictionary与NSString、NSData 相互转化

NSArray *array = @[ @1, @2, @3, @4, @5, @3 ]; // 1. NSArray与NSData相互转化 // NSArray to NSData NSError *error; NSData *arrayData = [NSJSONSerialization dataWithJSONObject:array options:NSJSONWritingPrettyPrinted error:&error]; if (!error) { NSLog(@"

iOS之钥匙串加密解密

注意:不需要看这里面的代码实现 KeychainItemWrapper.h #import <UIKit/UIKit.h> /* The KeychainItemWrapper class is an abstraction layer for the iPhone Keychain communication. It is merely a simple wrapper to provide a distinct barrier between all the idiosyncracies

uuid 和 keychain

在开发过程中,我们经常会被要求获取每个设备的唯一标示,以便后台做相应的处理.我们来看看有哪些方法来获取设备的唯一标示,然后再分析下这些方法的利弊. 具体可以分为如下几种: UDID IDFA IDFV MAC keychain 下面我们来具体分析下每种获取方法的利弊 1.UDID 什么是UDID UDID 「Unique Device Identifier Description」是由子母和数字组成的40个字符串的序号,用来区别每一个唯一的iOS设备,包括 iPhones, iPads, 以及

keychain长久储存UUID

UUID一般只生成一次,保存在iOS系统里面,如果应用删除了,重装应用之后它的UUID还是一样的,除非系统重置 .但是不能保证在以后的系统升级后还能用(如果系统保存了该信息就能用). 由于IOS系统存储的数据都是在sandBox里面,一旦删除App,sandBox也不复存在.好在有一个例外,那就是keychain(钥匙串). 通常情况下,IOS系统用NSUserDefaults存储数据信息,但是对于一些私密信息,比如密码.证书等等,就需要使用更为安全的keychain了. iOS的keychai

iOS之数据安全

一.数据安全 术语----- 密钥:密钥是一种参数, 它是在明文转换为密文, 或将密文转换为明文的算法中输入的参数. 密钥分为对称密钥和非对称密钥(也可以根据用途来分为加密密钥和解密密钥) 明文:没有进行加密, 能够直接代表原文含义的信息 密文:经过加密处理之后, 隐藏原文含义的信息 加密:将明文转换成密文的实施过程 解密:将密文转换成明文的实施过程 数据安全----- 数据安全: 是一种主动的包含措施, 数据本身的安全必须基于可靠的加密算法与安全体系,主要是有对称算法与公开密钥密码体系两种(非