我想要我写的每个图形组件的地址,所以我可以稍后处理它,因为它是一个大矩阵,我不想这样做:“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从没有强制转换的整数中生成指针”??
谢谢
答案 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];