Global Regular Class Global Reatable между экземплярами объектов - помощь!

StackOverflow https://stackoverflow.com/questions/3741823

Вопрос

Я только начал изучать цель C, имея небольшой опыт Java, и этот сайт действительно полезен для ответа на нагрузки на мои вопросы, но я ударил проблему, которую не могу достаточно понять. Theres справедливая сумма, которую нужно прочитать по теме, но я не могу найти, где я пошел не так.

Я прочитал это:

Задача C не поддерживает элементы классов данных (т. Е. Данные, которые разделяют все объекты одного класса), однако они могут быть эмулированы с помощью статического модификатора. Например, объявление переменная подсчета Static INT в файле реализации класса сотрудников приведет к тому, что все объекты сотрудников совместно используют единую целочисленную переменную, называемую подсчетом.

Но я, кажется, оказался с этой функциональностью, не пытаясь ... и я не хочу этого!

Сценарий состоит в том, что у меня есть категория UiimageView, в которой я объявляю глобальную переменную (чуть ниже моей линии @implementation), чтобы подсчитать конкретное событие и использовало его в моих новых методах.

@implementation UIImageView (Draggable)    
int touchesCount = 0;    
// methods ...

Все работает нормально, если у меня есть один UiimageView. Однако, когда я создаю и добавив второй экземпляр UIImageViewView, эта переменная подсчета передается между двумя, давая неожиданное поведение.

Рисунок может быть уместно показать, как я создаю объекты:

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];

Кроме того, любые предложения о том, где я могу пойти не так?

Спасибо!

Редактировать: Чтобы проиллюстрировать немного больше того, что я делаю с 2 просмотрами, я в этом случае - это контроль контроллера.

Это было полезно?

Решение

То, что вы ищете, являются переменными экземпляра, но категории не могут добавить их в интерфейсяблоко:

Обратите внимание, что категория не может объявить дополнительные переменные экземпляра для класса; Включает только методы.

Вы должны использовать наследование вместо:

@interface MyView : UIImageView {
    int touchesCount;
}
// ...
@end
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top