Objective-C, глобальные переменные и потоки - PullRequest
0 голосов
/ 28 апреля 2011

Я сделал несколько файлов класса Objective-C.У двух из них было одинаковое имя для глобальной переменной.Когда программа выполняла поток из одного файла, но также обращалась к коду из другого файла в другом потоке, поток, похоже, запутался в том, какая глобальная переменная принадлежит ему.

Это настоящая проблема илимой код неверный?Я, кажется, исправил это, изменив имя переменной.

1 Ответ

3 голосов
/ 28 апреля 2011

Я бы сказал, что ваш код ошибочен, но я думаю, что здесь есть более фундаментальная вещь, которую вы неправильно понимаете.

Поток сам по себе не принадлежит файлу и не владеет чем-либо.На самом деле произошло то, что у вас есть две функции, по одной в каждом из ваших файлов, компилятор (поскольку ваши переменные связывают друг друга) решил использовать одну переменную в одном файле, а другую - в другой.Это не имеет ничего общего с потоками или чем-то еще.

Более того, если вы ищете локальную переменную потока, вы можете захотеть взглянуть на свойство threadDictionary NSThread http://developer.apple.com/library/mac/#documentation/Cocoa/Reference/Foundation/Classes/NSThread_Class/Reference/Reference.html

...