【发布时间】:2012-01-12 05:35:59
【问题描述】:
我想创建一个以特定对象为键并映射到 NSNumber 的 NSMutableDictionary。该对象来自第 3 方库,并且未实现 copyWithZone 方法。编译器可以理解地抱怨使用代码将无法识别的选择器(copyWithZone)发送到对象:
[dictionary setObject:[NSNumber numberWithInt:index] forKey:someObject];
由于我不想为不需要知道如何复制的第 3 方库对象创建自己的 copyWithZone 方法,因此我没有创建实现该方法的类别。
我的 hack 是将内存地址存储在 NSNumber 中,方法是将其转换为 long long:
[dictionary setObject:[NSNumber numberWithInt:index] forKey:[NSNumber numberWithLongLong:(long long)someObject]];
要检索值:
NSNumber *indexNumber = [dictionary objectForKey:[NSNumber numberWithLongLong:(long long)someObject]];
这对我来说似乎很骇人听闻。处理 object-to-int 映射的更简洁的方法是什么?
【问题讨论】:
标签: objective-c ios