我正在尝试将NSNumber传递给一个正在运行的UInt32 ..然后我试图将UInt32填充到一个NSData对象中..但是这就是事情变得时髦的...
当我尝试将NSData对象中的whats写入字符串时返回(null)。
这就是我的代码的样子,我认为它与我将CACHE_VALUE传递给requestCacheData的方式有关...但我不完全确定原因。
// Use the correctly returned cache number
UInt32 CACHE_VALUE = [cacheNumber intValue];
NSLog(@"%lu", CACHE_VALUE); //gives me the correct integervalue
NSData * requestCacheData = [[NSData alloc] initWithBytes:&CACHE_VALUE length:sizeof(CACHE_VALUE)];
NSString *myString = [[NSString alloc] initWithData:requestCacheData encoding:NSUTF8StringEncoding];
NSLog(@"%@", myString); //outputs (null)
任何帮助将不胜感激。
答案 0 :(得分:0)
您无法将NSData转换为NSData不包含正确字符串内容的正确NSString。
在您的情况下,您的NSData只包含二进制unsigned int,
你想要得到什么?NSString* str= @"a NSString";
NSData* requestCacheData =[str dataUsingEncoding:NSUTF8StringEncoding];
NSString *myString = [[NSString alloc] initWithData:requestCacheData encoding:NSUTF8StringEncoding];
NSLog(@"%@", myString);
您可以获得正确的输出,
但是如果你想将UINT转换为NSString
刚
NSString *str = [[[NSString alloc] initWithFormat:@"%u",CACHE_VALUE] autorelease];