Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/122.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 将NSDictionary值转换为NSString_Ios_Nsdictionary - Fatal编程技术网

Ios 将NSDictionary值转换为NSString

Ios 将NSDictionary值转换为NSString,ios,nsdictionary,Ios,Nsdictionary,我想把字典的值转换成字符串。 我的代码: 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:

我想把字典的值转换成字符串。 我的代码:

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];

搜索您的代码并张贴代码,查找您发送名为
length
的消息的部分。你在哪里用过这个?@Unkn0wn.Bit他们可能不叫length。Length将被另一个尚未创建的方法调用
NSString
使用长度,因此
[[services objectForKey:[keys objectAtIndex:i]]objectForKey:@“Nomber”]
很可能返回一个
NSNumber
,然后将其传递给
NSString
这就是它出错的地方。如果您知道该值是一个
NSNumber
,那么您可能只需在末尾添加
stringValue
。然后他应该使用
[[services objectForKey:[keys objectAtIndex:i]]objectForKey:@“Nomber”]stringValue]
来设置NSStringI,我认为他可能在向
NSNumber
发送错误消息时犯了错误,他犯了一个错误,因为字典的缘故,代码被终止了。谢谢你,这正是我搜索的目的。
NSString *nomberService=[[[services objectForKey:[keys objectAtIndex: i]] objectForKey:@"Nomber"] stringValue];