Я только начал изучать цель c, имея небольшой опыт работы с Java, и этот сайт очень помог мне ответить на множество моих вопросов, но я столкнулся с проблемой, которую не совсем понимаю.На эту тему можно прочитать много, но я не могу точно понять, в чем я ошибся.
Я прочитал это:
Цель C не поддерживает данные классовчлены (то есть данные, используемые всеми объектами одного и того же класса), однако их можно эмулировать с помощью модификатора static.Например, объявление статической переменной int count в файле реализации класса Employee приведет к тому, что все объекты Employee будут иметь одну целочисленную переменную, называемую count.
Но я, похоже, в итоге оказался с этой функциональностьюбез попыток ... и я не хочу этого!
Сценарий состоит в том, что у меня есть категория UIImageView, в которой я объявляю глобальную переменную (чуть ниже моей строки @implementation) для подсчета определенногособытие и использовать его в моих новых методах.
@implementation UIImageView (Draggable)
int touchesCount = 0;
// methods ...
Все работает нормально, если у меня есть один UIImageView.Однако, когда я создаю и добавляю второй экземпляр UIImageView, эта переменная подсчета распределяется между двумя, что приводит к неожиданному поведению.
На рисунке это может быть важно, чтобы показать, как я создаю объекты:
UIImageView *myImageView = [[UIImageView alloc] initWithFrame:myImageRect];
UIImageView *myImageView2 = [[UIImageView alloc] initWithFrame:myImageRect];
// ... (create, manipulate and set 2 images to the 2 views)
[self.view addSubview:myImageView];
[self.view addSubview:myImageView2];
Кроме того, есть какие-нибудь предложения о том, где я могу пойти не так?
Спасибо!
Редактировать: Чтобы проиллюстрировать немного больше, что я делаюв случае двух представлений self в данном случае является ViewController.