本文主要是介绍NSData转NSString的问题,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
NSDataz转NSString的问题
NSData *wangguanDomindata = [NSDatadataWithData:(NSData *)[paraValueArrayobjectAtIndex:i]];
NSLog(@"wangguanDomindata--->%@-->%lu",wangguanDomindata,(unsignedlong)wangguanDomindata.length);
输出为:wangguanDomindata---><3232322e 37332e32 31352e31 30370000 00000000 00000000 00000000 00000000>-->32
其后面有很多的<00>
这种情况转为nsstring时候,nsstring的长度为nsdata的长度
NSString *wangguanDomin = [[NSStringalloc] initWithData:wangguanDomindataencoding:NSUTF8StringEncoding];
NSLog(@"wangguanDomin-->%lu-->%@",(unsignedlong)wangguanDomin.length,wangguanDomin);
但是wangguanDomin-->32->222.73.215.107的字符串的长度为32,
其wangguanDomin这个字符串的结尾处是有结尾符的,
既是’\0’的ASCII是00;所以要在做处理。
//因为字符串最后的结尾符要给去掉,’\0’的ASCII是00;
wangguanDomin = [wangguanDominstringByReplacingOccurrencesOfString:@"\0"withString:@""];
NSLog(@"wangguanDomin-->%lu-->%@",(unsigned long)wangguanDomin.length,wangguanDomin);
这样wangguanDomin与@"222.73.215.107"字符串进行isEqualToString比较时候就相同了。
这篇关于NSData转NSString的问题的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!