我有一個for循環工作正常。我添加了一個新的UIView子類分配內,在每個循環迭代要做:在for循環中的分配時機
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];
}
事實上,theview分配,但在循環內部確定的點是不一樣的點1,當我看着在theview 。
事實上,theview的所有迭代似乎環路結束之後將被分配,如通過theview的drawRect方法內一個printf在循環的所有迭代所有printf的被稱爲後調用說明。 如果不明確的,我看到類似的東西:
X = 1 Y = 1 X = 2 Y = 2 X = 3 Y = 3 從視圖 printf的視圖 的printf的printf從視圖
。爲什麼? 在此先感謝!
只是一些建議風格 - 用大寫字母開始你的類名。 MyView不是myView。用小寫字母開始你的變量(就像你正在做的那樣)。這會讓其他開發者更容易閱讀。 – bandejapaisa
我並不完全遵循你的問題在這裏。但是在屏幕上呈現視圖時調用drawRect。循環完成後,在下一輪事件循環中。你的myView被分配在你的循環中。 – digidigo
Bandejapaisa你是對的,我很累。編輯我的問題。 – NightCoder