objective-c - 什么是 NSFrozenDictionaryM?

标签 objective-c xcode

我在调试应用程序时遇到了 NSFrozenDictionary。

NSFrozenDictionary

共享索引属性声明为 NSDictionary * sharedIndex = ...

这是什么?它与 NSMutableDictionary 有何不同?

最佳答案

它是一个标记为不可变的 NSMutableDictionary

获取__NSFrozenDictionaryM的一种情况:

  1. 有一个可变字典数组:

    NSArray *array = @[{NSMutableDictionary}, {NSMutableDictionary}, {NSMutableDictionary}]

  2. 通过以下方式制作一个两层深的副本:

    NSArray *res = [[NSArray alloc] initWithArray:array copyItems:YES]

生成的 res 数组包含 array 中 NSMutableDictionaries 的不可变副本,其类型为 __NSFrozenDictionaryM。我想这是为了避免真正复制原始数组中的所有字典而进行的优化。

关于objective-c - 什么是 NSFrozenDictionaryM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48290406/

相关文章:

ios - 构建应用程序时忽略字体?

ios - 添加到 inputAccessoryView 的 UIButton 未检测到触摸

ios - 我的 UIlabel 没有更新,我想让它更新移动车辆或自行车等的速度?

ios - 在 iOS 中的 BLE 上写入数据时出现未知错误

objective-c - 在 Objective-C 中声明我类的代表持有的对象的所有权

ios - 无法将 ZXingObjC 集成到 iOS Swift 项目中

Objective-C:将属性引用传递给方法调用的正确方法

ios - swift : Use closure compatible with Objective-C block

ios - 苹果开发者协议(protocol)中的提交按钮没有响应

ios - AVAudioPlayer 在转场后继续播放并在返回原始 View Controller 时重新启动 - 我怎样才能停止它?