我有一个plist文件,其中包含一些“对象”。我可以成功提取字典,但是当我尝试NSLog objectForKey时,我得到了这种日志:
<CFKeyedArchiverUID 0x608000228c20 [0x7fff75bddf00]>{value = 815}
如何提取值815?
也许可以帮助您知道815是对字典中某个项目位置的引用。
谢谢
最佳答案
根据此opensource.apple.com source code,CFKeyedArchiverUID是一个结构:
struct __CFKeyedArchiverUID {
CFRuntimeBase _base;
uint32_t _value;
};
CFRuntimeBase是16位。 (opensource.apple.com source)
因此,您可以通过跳过前16位并在该地址获取uint32_t值来获取CFKeyedArchiverUID对象的值:
+ (uint32_t)valueForKeyedArchiverUID: (id)keyedArchiverUID {
void *uid = (__bridge void*)keyedArchiverUID;
uint32_t *valuePtr = uid+16;
return *valuePtr;
}
关于objective-c - 提取CFKeyedArchiverUID值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/25397048/