Objective-C,全局变量和线程

时间:2011-04-27 22:54:39

标签: objective-c thread-safety global-variables

我制作了几个Objective-C类文件。其中两个对全局变量具有相同的名称。当程序从一个文件运行一个线程但是也从另一个线程上的另一个文件访问代码时,该线程似乎对全局变量属于它的内容感到困惑。

这是一个真正的问题还是我的代码错了?我好像通过更改变量名来修复它。

1 个答案:

答案 0 :(得分:3)

我认为你的代码错了,但我觉得你在这里有一个更基本的误解。

线程本身不属于某个文件或拥有任何内容。真正发生的事情是说你有两个函数,每个函数一个,编译器(因为你的变量相互别名)选择在一个文件中使用一个变量,在另一个文件中使用另一个变量。这与线程或其他任何事情无关。

此外,如果您正在寻找线程局部变量,您可能需要查看NSThread http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class/Reference/Reference.html的threadDictionary属性