我有一个 UIView,它有大约 60 个调用相同方法的按钮。单击按钮时,我通过这种方法打开不同的图像 - 我使用按钮标签来知道调用了哪个按钮以及要显示哪个图像。把它想象成一个画廊。
由于按钮的绘制很困难,我为此使用了 Interface Builder 并使用该 UIView 创建了一个 XIB。我只是将按钮拖到正确的位置,然后在事件 TouchUpInside 中将它们连接到我的方法。我用它来将视图添加到我的主视图中:
NSArray *xibContents = [[NSBundle mainBundle] loadNibNamed:@"Tour" owner:self options:nil];
UIView *tour = [xibContents lastObject];
[self.view addSubview:tour];
到目前为止一切顺利,乍一看效果很好。不幸的是,当应用程序使用了一段时间时,会出现一些问题。按钮仍然突出显示(所以它们仍然在这里!)但不再调用任何操作。那里只是亮点,但没有行动。
我不知道为什么,但不知何故垃圾收集器似乎破坏了 UIButton 目标。为什么?我该如何解决?
请注意,我没有以编程方式声明按钮。我认为将它们放在 IB 中就足够了。
我也找不到内存警告和 UIButton 目标的破坏之间的联系。内存警告确实出现在我的应用程序中,但大多数时候按钮仍然有效。
但它必须是一个垃圾收集器,因为这个错误完全是随机出现的。无法重现此错误,有时会在单击 5 次后发生,有时会在我的应用程序中花费 10 分钟后发生。