从 nsdictionary 获取 const char
get const char from nsdictionary
我正在尝试从 nsdictionary
中读取 const char *
到目前为止我已经试过了
NSLog(@"input1 %s",(const char*)inInputData);
NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init];
NSValue* inputData = [NSValue value:&inInputData withObjCType:@encode(const char)];
[myDict setObject:inputData forKey:@"inInputData"];
NSValue* readVal= [NSValue value:[myDict valueForKey:@"inInputData"] withObjCType:@encode(const char)];
NSLog(@"input2 %@",[myDict valueForKey:@"inInputData"]);
NSLog(@"readVal1 %s",(const char*)readVal);
NSLog(@"readVal2 %s",(const char*)[myDict valueForKey:@"inInputData"]);
结果不匹配
input1 !ã”—g¯ı0ã#àc†©Ä.2Ö£≤Áï7ª˚óm«Ûàut,‰aG≈ÈÜßx:◊Ætc´Ü£ªhg)8ÁÀ £Ø-<3©ô8>§
!…¨ÕøF∆‚∏0'Ñ&,œ#∏?Ô
input2 <9d>
readVal1 `+#
readVal2 `+#
如何从字典中正确获取 input1 值?
您将 const char
作为类型传递,而对输入数据的引用是类型 const char *
。
const char *
用于 C 字符串或二进制 dara。在第一种情况下,您应该将其转换为 NSString
的实例。
但在您的情况下,它显然用于二进制数据。在这种情况下,您应该将其转换为 NSData
.
的实例
NSData *data = [NSData dataWithBytes:inInputData length:youShouldReallyKnowThat];
由于 NSData
的实例是实例对象,您可以将它们存储到字典中。
我正在尝试从 nsdictionary
const char *
到目前为止我已经试过了
NSLog(@"input1 %s",(const char*)inInputData);
NSMutableDictionary * myDict = [[NSMutableDictionary alloc] init];
NSValue* inputData = [NSValue value:&inInputData withObjCType:@encode(const char)];
[myDict setObject:inputData forKey:@"inInputData"];
NSValue* readVal= [NSValue value:[myDict valueForKey:@"inInputData"] withObjCType:@encode(const char)];
NSLog(@"input2 %@",[myDict valueForKey:@"inInputData"]);
NSLog(@"readVal1 %s",(const char*)readVal);
NSLog(@"readVal2 %s",(const char*)[myDict valueForKey:@"inInputData"]);
结果不匹配
input1 !ã”—g¯ı0ã#àc†©Ä.2Ö£≤Áï7ª˚óm«Ûàut,‰aG≈ÈÜßx:◊Ætc´Ü£ªhg)8ÁÀ £Ø-<3©ô8>§
!…¨ÕøF∆‚∏0'Ñ&,œ#∏?Ô
input2 <9d>
readVal1 `+#
readVal2 `+#
如何从字典中正确获取 input1 值?
您将 const char
作为类型传递,而对输入数据的引用是类型 const char *
。
const char *
用于 C 字符串或二进制 dara。在第一种情况下,您应该将其转换为 NSString
的实例。
但在您的情况下,它显然用于二进制数据。在这种情况下,您应该将其转换为 NSData
.
NSData *data = [NSData dataWithBytes:inInputData length:youShouldReallyKnowThat];
由于 NSData
的实例是实例对象,您可以将它们存储到字典中。