我想将字典的值转换为字符串。
我的代码:
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];