2012-01-24 54 views

回答

15

你可以把任何類型對象的成NSDictionary。所以雖然@"fred"是好的,但是1不是,作爲一個整數不是一個對象。如果你想要把在字典中的一個數字,把它包在一個NSNumber

NSDictionary *header = { @"title": @"fred", @"count": @1 }; 
+2

有趣。我習慣於C#,一切都是對象。謝謝。 – ChrisP

0

不是你擁有它的方式。數字1是一個基元,NSArray對象只能容納對象。爲「1」創建一個NSNumber,然後它將存儲它。

0

一個NSDictionary只能包含在它的Objective-C的對象(如NSStringNSArray),它不能包含像intfloat,或char*原始類型。鑑於這些限制,異構詞典是完全合法的。

如果要包括一個數字,如1作爲一個鍵或值,你應該用一個NSNumber把它包:

NSDictionary *header=[[NSDictionary alloc] initWithObjectsAndKeys: 
    @"fred", @"title", 
    [NSNumber numberWithInt:1], @"count", 
    nil]; 
0

唯一的要求是,是是一個對象。這取決於你在代碼中正確處理對象,但是大概你可以根據鍵來跟蹤它們的類型。

1不是一個對象。如果你想把一個數字放到字典中,你可能想把它轉換成一個NSNumber。

相關問題