moo*_*ots 11 memory iphone cocoa nsdictionary
这可能听起来像一个完全愚蠢的问题,但我怎样才能获得NSDictionary的字节大小?我可以将它转换为NSData,然后得到它的长度?
救命!
Ben*_*tto 18
您应该更多地说明为什么您关心字典的大小(以字节为单位),因为答案可能会有所不同.
一般来说,NSDictionary在内存中的足迹"大小"并不是你可以看到或关心的.它从程序员那里抽象出它的存储机制,并使用某种形式的开销超出它存储的实际数据.
但是,您可以将字典序列化为NSData.如果字典的内容只是"原始"类型,如NSNumber,NSString,NSArray,NSData,NSDictionary,您可以使用NSPropertyListSerialization类将其转换为二进制属性列表,这将是其内容的最紧凑的字节表示形式你可以得到:
NSDictionary * myDictionary = /* ... */;
NSData * data = [NSPropertyListSerialization dataFromPropertyList:myDictionary
format:NSPropertyListBinaryFormat_v1_0 errorDescription:NULL];
NSLog(@"size: %d", [data length]);
Run Code Online (Sandbox Code Playgroud)
如果它包含其他自定义对象,您可以使用NSKeyedArchiver将其存档到NSData,但这将非常大,需要您的自定义类的合作.
| 归档时间: |
|
| 查看次数: |
5156 次 |
| 最近记录: |