我有这个C结构(用malloc分配,因此在堆中)我想存储在NSMutableDictionary中,因为我想避免重新创建一个复杂过程的C结构。
通常使用C结构我知道我可以使用NSData对象来存储这些位,然后将它放在Objective-C容器中,例如NSArray和NSDictionary。但是,我想保存的结构包含一个指向C链接列表的指针,这就是我想避免重新创建的原因。我宁愿将指针保存在像NSDictionary这样的容器中,并在需要时获取它。
问题是,在不重新创建结构的情况下重用结构的最佳方法是什么?
我正在考虑将指针存储到结构本身。由于指针实际上只是一个数字,我可以将其存储在NSNumber中吗?如果可以的话,我该怎么用?无符号多长?
示例:[NSNumber numberWithUnsignedLongLong:aPointer];
PS:这适用于iPhone BTW。
答案 0 :(得分:3)
指针不是数字(至少不是NSNumber
意义上的)。但这是一种价值。事实上,您可以使用[NSValue valueWithPointer:myPtr]
。