-1

我想创建一个字典,键为“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";
4

4 回答 4

2
于 2013-10-28T10:25:06.040 回答
0

当您对字符串进行初始化时,NSString正在为您选择正确的字符串编码,这可能是UTF8. 所以你的撇号是 unicode 中的 \U2019 。您的代码没有错:您在调试器或 NSLog 中看到的内容在这里是正确的。

于 2013-10-28T10:18:32.040 回答
0

你用过:

NSLog(@"%@", dict);

这就是为什么它显示为输出。在NSDictionary中,' 字符被编码。

您可以通过以下方式检查:

NSLog(@"%@", [dict valueForKey:@"name"]);

它将打印所需的输出。

于 2013-10-28T10:28:24.473 回答
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]]);
于 2013-10-28T10:34:40.317 回答