2009-12-18 74 views
0

我已经设法从APN获得设备口令。它是NSData的类型。 所以我想写这个deviectoken到我的MySQL数据库。 我已经试图将它转换为字符串,但没有运气。 这是我的方式:iPhone pushNotification DeviceToken - 如何“解密”

NSString *tokenTMP = [[NSString alloc] initWithData:devToken encoding:NSASCIIStringEncoding]; 

,如果我有deviceToken以可读格式。我如何在php中使用令牌向apns服务器发送请求?

非常感谢!

回答

4

添加以下类别的NSData

- (NSString*) stringWithHexBytes 
{ 
    NSMutableString *stringBuffer = [NSMutableString stringWithCapacity:([self length] * 2)]; 
    const unsigned char *dataBuffer = [self bytes]; 

    for (int i = 0; i < [self length]; ++i) 
    { 
     [stringBuffer appendFormat:@"%02X", (unsigned long)dataBuffer[ i ]]; 
    } 

    return [[stringBuffer retain] autorelease]; 
} 

然后,我可以只是调用[DEVTOKEN stringWithHexBytes];并发送到我的服务器并将其作为文本存储。

希望有所帮助。

chris。

+0

感谢您的帮助。 如果我想运行应用程序,编译器抱怨 ([自身长度] * 2)错误 “无效操作数为二进制*(有'id'和'int')” 发生。 – rdesign 2009-12-18 19:43:30

+0

我已编辑你的功能,现在它的作品!非常感谢! - (NSString *)stringWithHexBytes:(NSData *)token; 像charme :)的作品 – rdesign 2009-12-18 19:51:47