我有一個NSMutableDictionary實例,我使用的鍵是NSNumber *類型。NSDictionary的objectForKey是查找引用還是基於值?
在場景中,我試圖用'objectForKey'來檢索我的字典中的一個對象,我知道它存在。但我一直得到零的結果,除非我把密鑰從NSNumber轉換爲NSString。
NSNumber *itemId = [NSNumber numberWithInt:5];
id *existingItem = [forRemovalLookup objectForKey:itemId];
if (existingItem == nil)
{
// expected: shouldn't be nil
NSLog(@"!!!!!Not expecting this to be nil");
}
是否有另一個操作我應該用來測試字典中特定鍵的存在?
我認爲你的意思是**'id' **而不是**'id *'**作爲你的數據類型。請記住,'id'大致等同於'void *',但更具動態性,並且不需要任何投射來存儲它。 (事實上,你有一個指向id的指針,在這種情況下仍然有效,但在語義上是錯誤的。) – 2009-09-24 04:07:02
由於作者似乎發現錯誤,投票結束爲不再相關。 – 2009-10-19 05:07:36