如何使字典 NSDictionary 可以安全地读取、插入



在每次启动应用程序时,我都必须从服务器获取几个.plists,然后我在代码中使用其中一些(取决于用户的选择)。为了避免加载非常 .plist,我在进入应用程序时,我下载了所有内容并将每个解析到字典中,并且所有这些都放入缓存字典中(键是 plist 名称和值是 plist 解析到字典中)。如何使字典(NSDictionary或使用其他东西)可以安全地阅读,插入?

您可以在每次访问共享对象时使用@synchronized。我建议构建一个用于访问的包装器对象,这样您就不会意外忘记在代码中的一个位置进行同步。

@synchronized {
    NSString* settingValue = self.sharedDictionary[@"key"];
}

这是一个语言功能,被翻译成独占互斥锁。如果需要更好地控制同步方式,则应使用提供的其他同步原语之一。Apple在他们的线程编程指南中对此有一个很好的概述。

最新更新