我想创建一个带有“name”键和数字的字典,其值为“George's iPhone”和“123456”。
我的代码是:
NSString *name = @"George’s iPhone";
NSMutableDictionary *dict = [[NSMutableDictionary alloc]init];
[dict setValue:@"123456" forKey:@"number"];
[dict setValue:name forKey:@"name"];
但我得到了,
name = "George\U2019s iPhone";
value = "123456";
答案 0 :(得分:2)
您的代码没有任何问题,输出也没有任何问题。
\U2019
是一个可以转换为所需字符的转义序列。
现在,你可能想要'
,而不是’
,但那真的既不在这里也不在那里。
答案 1 :(得分:0)
当您对字符串进行初始化时,NSString
正在为您选择正确的字符串编码UTF8
。所以你的撇号在unicode是\ U2019。你的代码没有错:你在调试器或NSLog中看到的是正确的。
答案 2 :(得分:0)
您使用过:
NSLog(@"%@", dict);
这就是它显示输出的原因。在NSDictionary
中,'
字符已编码。
您可以查看:
NSLog(@"%@", [dict valueForKey:@"name"]);
它将打印所需的输出。
答案 3 :(得分:0)
试试这样: -
NSDictionary *yourDict=[NSDictionary dictionaryWithObjects:[NSArray arrayWithObjects:@"George’s iPhone",@"123456",nil] forKeys:[NSArray arrayWithObjects:@"name",@"number",nil]];
NSLog(@"%@",[[yourDict valueForKey:@"name"]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]);
NSLog(@"%@",[[yourDict valueForKey:@"number"]stringByTrimmingCharactersInSet:[NSCharacterSet whitespaceAndNewlineCharacterSet]]);