Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.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
Objective c NSDictionary到NSString的转换问题_Objective C_Nsstring_Type Conversion_Nsdictionary - Fatal编程技术网

Objective c NSDictionary到NSString的转换问题

Objective c NSDictionary到NSString的转换问题,objective-c,nsstring,type-conversion,nsdictionary,Objective C,Nsstring,Type Conversion,Nsdictionary,这段代码有什么问题 这是有效的: NSDictionary* fact = [facts objectAtIndex:currentFactId]; [myTextView setText:[fact objectForKey:@"fact"]]; 这是行不通的: NSDictionary* fact = [facts objectAtIndex:currentFactId]; NSString *fact_string = [fact objectForKey:@"fact"]; 这应该管

这段代码有什么问题

这是有效的:

NSDictionary* fact = [facts objectAtIndex:currentFactId];
[myTextView setText:[fact objectForKey:@"fact"]];
这是行不通的:

NSDictionary* fact = [facts objectAtIndex:currentFactId];
NSString *fact_string = [fact objectForKey:@"fact"];

这应该管用,但还是试试这个

NSString *fact_string = [NSString stringWithFormat:@"%@",[fact objectForKey:@"fact"]];

认为objectForKey不能确保返回NSString。因为您正在分配它的值,所以需要像Neo所说的那样封装它。如果没有封装,或者至少对(NSString*)进行转换,我不会进行设置和赋值。

什么意思,它不起作用?你得到了什么?尝试记录[[fact objectForKey:@“fact”]类]并查看它返回的内容。如果该对象还不是
NSString
,则将其强制转换为
NSString*
将毫无帮助。将Objective-C对象强制转换为其他Objective-C类型不会更改对象,也不会执行任何转换。