我想将我的字典的值转换成字符串。 我的代码:
NSArray *keys=[services allKeys];
yourLabel = [[UILabel alloc] initWithFrame:CGRectMake(146, (i*height_between_cells)+44, 40, 25)];
NSString *nomber = (NSString *)[[services objectForKey:[keys objectAtIndex: i]] objectForKey:@"Nomber"];
//NSString *nomberService=[[services objectForKey:[keys objectAtIndex: i]] objectForKey:@"Nomber"];
[yourLabel setText:nomber];
[recapView addSubview:yourLabel];
如您所见,我想用我的字典值设置标签的文本。 当我这样做时出现错误:
[__NSCFNumber length]: unrecognized selector sent to instance 0x14d57fd0
你有想法吗?
最佳答案
错误是因为您假设 [[services objectForKey:[keys objectAtIndex: i]] objectForKey:@"Nomber"];
的结果给了您一个 NSString
但它实际上是给你一个 NSNumber
。
使用强制转换只会让编译器开心。它实际上并没有转换任何东西。
尝试这样的事情:
NSNumber *nomber = [[services objectForKey:[keys objectAtIndex: i]] objectForKey:@"Nomber"];
[yourLabel setText:[nomber stringValue]];
或者使用现代语法你可以这样做:
NSNumber *nomber = services[keys[i]][@"Number"];
yourLabel.text = [nomber stringValue];
关于ios - 将 NSDictionary 值转换为 NSString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21938884/