我有一个运行良好的 for 循环。我在一个新的 UIVIew 子类分配中添加,在每个循环迭代中完成:
for (n=something; n>0; n--)
{
//(...)
MyView* theview=[[myView alloc]initWithFrame:self.frame];
float y=sin(DEGREES_TO_RADIANS(currentAngle));
float x=cos(DEGREES_TO_RADIANS(currentAngle));
theview.point1=CGPointMake(x, y);
// printf x & y here
[self addSubview:theview];
}
其实是分配了view,但是loop里面定义的point和我在view里面看的时候point1是不一样的。
事实上,view 的所有迭代似乎都在循环结束后分配,正如 view drawrect 方法中的 printf 所述,该方法在调用循环的所有迭代中的所有 printf 后调用。如果不清楚,我会看到类似的内容:
x=1 Y=1 x=2 y=2 x=3 y=3 printf 从视图 printf 从视图 printf 从视图
. 为什么?提前致谢!