【发布时间】:2009-10-19 13:00:03
【问题描述】:
我有一个 NSMutableDictionary 实例,我使用的键是 NSNumber* 类型。
在我的场景中,我正在尝试使用“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 的指针,在这种情况下它仍然有效,但在语义上是错误的。) -
投票关闭不再相关,因为作者似乎发现了错误。
标签: objective-c