2011-03-11 60 views
2

在我的视图控制器中,我正在以编程方式在我的UIView中创建N个按钮。每个按钮都需要做一些不同的事情,所以我创建了一个自定义处理程序类,我创建了N个实例,每个实例都使用自定义数据进行了初始化。我在for循环的主体中创建它们并将它们添加为目标,之后我不再需要它们。我可以让UIControl获得“一次性”事件目标的所有权吗?

但是,因为UIControl没有取得他们的事件目标的所有权,所以我需要自己(在控制器中)挂上这些自定义处理程序,引入额外的ivar和必要的发布代码。有没有更好的方法来处理这个问题?

回答

3

将这些自定义处理程序添加到您在控制器中保留的NSArray(无论控制器是否创建按钮)。将一个对象添加到数组中会保留该对象,所以您会知道它总是在附近。

+3

同样,释放数组也会释放其内容。 – 2011-03-11 14:14:54

+0

我在我的问题中描述了这个解决方案;我的问题实际上是:有没有更好的方法来做到这一点?那么我想不是。 :-) 谢谢! – Martijn 2011-03-11 14:22:10

+2

以为你的意思是为每个自定义处理程序都有一个额外的iVar! – GendoIkari 2011-03-11 14:23:08

相关问题