awesome-tips / iOS-Tips

iOS知识小集
MIT License
3.29k stars 451 forks source link

NSData 的 description 方法在 iOS 13 的一个小问题 #39

Open southpeak opened 5 years ago

southpeak commented 5 years ago

微博网友 @钟冬V5 投稿,

问题:NSData 的 description 方法在 iOS 13之前可以把data转成string,iOS 13就不行了

解决方法

- (NSString *)hexadecimalString: (NSData *)data {
    const unsigned char *dataBuffer = (const unsigned char *)[data bytes];

    if (!dataBuffer) {
        return [NSString string];
    }

    NSUInteger dataLength  = [data length];
    NSMutableString *hexString  = [NSMutableString stringWithCapacity:(dataLength * 2)];

    for (int i = 0; i < dataLength; ++i) {
        [hexString appendFormat:@"%02x", (unsigned int)dataBuffer[i]];
    }

    return [NSString stringWithString:hexString];
}