2012-09-26 36 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類型不會更改對象,也不會執行任何轉換。 –