2011-08-01 46 views
0

我正忙於處理iPad應用程序,並且我的Web服務返回非常簡單的JSON數據。所有似乎都很好,我有其他方法做同樣的轉換沒有問題,但我有1個方法,當做一個整數 - >字符串轉換時返回一個隨機字符串。Objective-c給字符串賦予隨機數的整數?

下面我的userdata對象是由SBJSON解析器創建的NSDictionary。當[用戶數據objectForKey:@「用戶ID」]的調試的值是1。

然而,當我在用戶id爲此

NSString *userId = [NSString stringWithFormat:@"%d", [userdata objectForKey:@"UserID"]]; 

值是或似乎是隨機數,例如23425234.我也嘗試了我的格式%d,但得到了相同的結果。

+1

不[userdata objectForKey:]是否返回一個對象,即不是一個整數?所以你需要一個介於兩者之間的步驟?或者直接將它分配給NSString * userID? – onnoweb

+0

你在'userdata'中存儲什麼樣的對象? – sergio

+2

@typemismatch:您的類型不匹配。 –

回答

2

因爲它是一個對象,而不是一個int,你看對象的地址,相反,你可以這樣做:

NSString *userId = [NSString stringWithFormat:@"%@", [userdata objectForKey:@"UserID"]]; 
               ^
+0

你釘了它,謝謝 - 它會告訴我它正確的時候。 – typemismatch

+0

@typemismatch - 很高興我可以幫助 – MByD

2

與嘗試:

NSString *userId = [NSString stringWithFormat:@"%d", [[userdata objectForKey:@"UserID"] intValue]]; 

或者:

NSString *userId = [NSString stringWithFormat:@"%@", [userdata objectForKey:@"UserID"]]; 

對象的關鍵可能是NSNumber而不是int ...

+0

謝謝,我感謝額外的洞察力 - 記得我總是從這些東西中獲得物品:) – typemismatch