我刚刚开始学习具有一点 Java 经验的目标 c,这个站点对回答我的大量问题非常有帮助,但是我遇到了一个我无法理解的问题。关于这个主题有相当多的内容可供阅读,但我无法完全找到我哪里出错了。
我读到这个:
Objective C 不支持类数据成员(即同一类的所有对象共享的数据),但是,它们可以通过使用 static 修饰符来模拟。例如,在 Employee 类的实现文件中声明一个静态 int count 变量将导致所有 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];
除此之外,关于我可能会出错的任何建议?
谢谢!
编辑:为了更详细地说明我对 2 个视图所做的事情,在这种情况下,self 是一个 ViewController。