高速列挙でハマった

Objective-C高速列挙(for .. in ..)が使えるんだけど、順序保証されないの忘れててどはまり (^^;)>

# interface
NSMutableArray *scrollViews_;

# implementation
@synthesize scrollView = scrollView_;
-(void)layoutSubviews {
    CGSize newSize = self.view.bounds.size;
    CGFloat x = (self.contentOffsetIndex-1) * newSize.width;
    for (UIScrollView *scrollView in self.scrollView.subviews) {
        scrollView.frame = CGRectMake(x, 0, newSize.width, newSize.height);
        scrollView.contentSize = newSize;
        x += newSize.width;
    }
    ...
}

Array でビューを取り出して、横並びに配置したいのに高速列挙で取り出したら順序どおりに出てくる分けない。ちゃんと index 指定してこーやらないと...だね。

for (int index = 0; index < kMaxOfScrollView; index++) {
    UIScrollView *scrollView = [self.scrollViews objectAtIndex:index];
    ...
}

年末で焦ってたとはいえ、こんなチョンボで年越ししたのはショックだよ。まぁ、気づいたから良いけどね :-)