Objective c 在对象实例之间共享的常规类全局变量-帮助!
我刚刚开始学习objective c,有一点Java经验,这个网站对于回答我的大量问题非常有帮助,但我遇到了一个我不能完全理解的问题。关于这个话题,有相当多的文章要读,但我不太清楚哪里出了错 我读到: 目标C不支持类数据成员(即由同一类的所有对象共享的数据),但是,可以通过使用静态修改器来模拟它们。例如,在Employee类的实现文件中声明静态int count变量将导致所有Employee对象共享一个名为count的整数变量 但我似乎没有尝试就拥有了这个功能。。。我不想要它 场景是,我有一个UIImageView类别,其中我声明了一个全局变量(就在@implementation行下方),以计算特定事件,并将其用于我的新方法中Objective c 在对象实例之间共享的常规类全局变量-帮助!,objective-c,global-variables,categories,data-members,Objective C,Global Variables,Categories,Data Members,我刚刚开始学习objective c,有一点Java经验,这个网站对于回答我的大量问题非常有帮助,但我遇到了一个我不能完全理解的问题。关于这个话题,有相当多的文章要读,但我不太清楚哪里出了错 我读到: 目标C不支持类数据成员(即由同一类的所有对象共享的数据),但是,可以通过使用静态修改器来模拟它们。例如,在Employee类的实现文件中声明静态int count变量将导致所有Employee对象共享一个名为count的整数变量 但我似乎没有尝试就拥有了这个功能。。。我不想要它 场景是,我有一个U
@implementation UIImageView (Draggable)
int touchesCount = 0;
// methods ...
如果我只有一个视图,一切都正常。但是,当我创建并添加UIImageView的第二个实例时,这一计数变量将在两个实例之间共享,从而产生意外行为
图1显示如何创建对象可能与此相关:
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。您要查找的是实例变量,但类别无法将它们添加到界面: 请注意,类别不能为类声明其他实例变量;它只包括方法 您应该改为使用:
我已经按照你的建议修改了我的代码,现在它正在按预期工作。谢谢你的帮助。
@interface MyView : UIImageView {
int touchesCount;
}
// ...
@end