赋值使整数指针没有强制转换:地址问题

时间:2011-05-24 13:55:58

标签: iphone pointers

我想要我写的每个图形组件的地址,所以我可以稍后处理它,因为它是一个大矩阵,我不想这样做:“for(UIView *myView in [self.view subviews]){”。 < - 链接太慢,往往我得不到我想要的东西。

但是我可以通过保留地址并设置指针地址来获得所需的结果,但是我收到警告:

UIView *myView = [[UIView alloc] initWithFrame:RectFrame];
address[j][i] = (int) myView;
myView = address[j][i];   //  <---Assignment makes pointer from integer without a cast

好的,所以我尝试用(UIView)投射它并得到......

UIView *myView = [[UIView alloc] initWithFrame:RectFrame];
address[j][i] = (int) myView;
myView = (UIView) address[j][i];  //  <---Conversion to non-scalar type requested

那么我如何安抚并清除警告“ssignment从没有强制转换的整数中生成指针”??

谢谢

3 个答案:

答案 0 :(得分:1)

首先关闭:迭代,操纵和绘制1000 UIViews无论你怎么做都可能会慢得令人无法接受。我敢打赌,“绘图”部分将成为你的瓶颈,所以我怀疑迭代subviews数组或2D C数组之间的差异会在速度上产生明显的差异。

也就是说,为了使警告消失,请将您的数组声明为(UIView *)指针数组,而不是int

UIView *address[100][10];

然后你不需要在任何地方进行任何类型的转换。

答案 1 :(得分:0)

为什么不使用Tag属性,然后你可以使用[self viewWithTag:aTag];

答案 2 :(得分:0)

我无法理解你在做什么,但直接回答,应该是

myView = (UIView *) address[j][i];