我有一个带有辅助线程的iPhone应用程序来处理XML解析。在其中一些方法中,我需要引用在主线程中创建并填充的字典(用于查找,而不是修改)。
Apple的文档告诉我,全局变量可能是实现这一目标的最佳方式。我现在才确定实现的样子。在.m的顶部定义字典并在辅助线程内正常访问它们吗?
答案 0 :(得分:1)
NSDictionary是线程安全的,所以它可能不是线程问题,除非你的初始化程序将全局分配为NSMutableDictionary(不是线程安全的),然后辅助线程尝试在它仍然被填充时访问它。
(如果是这种情况,初始化程序应首先将NSMutableDictionary分配到局部变量中,填充它,然后使用NSDictionary的+dictionaryWithDictionary:
或-initWithDictionary:
将完成的本地复制到全局变量。)
或者,在初始化时你是不是可以保留全局?