2012-09-26 37 views
0

这段代码有什么问题?NSDictionary进入NSString转换问题

这一工程:

NSDictionary* fact = [facts objectAtIndex:currentFactId]; 
[myTextView setText:[fact objectForKey:@"fact"]]; 

这并不工作:

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

你是什么意思,它不起作用?你得到了什么?尝试记录[[fact objectForKey:@“fact”] class]并查看它返回的内容。 – rdelmar

回答

2

这应该工作,但仍尝试这个

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

想那objectForKey不保证你那将会返回一个NSString。既然你正在分配它的值,你需要像Neo所说的那样封装它。如果没有封装或至少是(NSString *)的转换,我就不会执行该集合和赋值。

+0

如果对象不是'NSString',那么将它转换为'NSString *'也不会有帮助。将Objective-C对象转换为不同的Objective-C类型不会更改对象,也不会执行任何转换。 –