柜台停留在零

时间:2012-11-18 14:17:32

标签: ios ios6

我必须在这里遗漏一些东西。我已经创建了一个柜台后计数器并且它们都可以工作,但是在下面的代码中,计数器i始终保持为零。 mapDelays计数正确显示18.想法是它将i处的数组值与true或false进行比较。这是从另一种方法调用的,该方法绘制来自机场阵列(18个机场)的引脚。数组中的一个项目是'delay',无论是true还是false。因此,当我绘制机场时,我想看看是否有继电器'真',如果有,请将引脚设为红色而不是绿色。是的,我是新手所以任何指针都会有所帮助 - 特别是流量和逻辑我显然都缺失了!

- (MKAnnotationView*)mapView:(MKMapView *)mapView viewForAnnotation:
(id<MKAnnotation>)annotation
{
    if ([annotation isKindOfClass:[AirportDetails class]]) {
        static NSString *const kPinIdentifier = @"AirportDetails";
        MKPinAnnotationView *view = (MKPinAnnotationView*)[mapView dequeueReusableAnnotationViewWithIdentifier:kPinIdentifier];

        if (!view) {
            view = [[MKPinAnnotationView alloc] initWithAnnotation:annotation reuseIdentifier:kPinIdentifier];
            view.canShowCallout = YES;
            view.calloutOffset = CGPointMake(-5, 5);
            view.animatesDrop = NO;
        }
        NSLog(@"I am here");
        for (int i = 0; i < self.mapDelays.count; i++) {
            NSLog(@"DelaysCount %i",i);
            NSLog(@" %i",self.mapDelays.count);
            if ([self.mapDelays[i] isEqualToString:@"true"]) {
                view.pinColor = MKPinAnnotationColorRed;
                view.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
                return view;
            } else
                view.pinColor = MKPinAnnotationColorGreen;
            view.rightCalloutAccessoryView = [UIButton buttonWithType:UIButtonTypeDetailDisclosure];
            //}
            return view;
        }
    } 

    return nil;
}

3 个答案:

答案 0 :(得分:1)

在我更改代码格式后,我发现在i的第一个for循环中你有return view;这将停止你的for循环。所以你有零。下次你应该小心你的编码风格。特别是{}

答案 1 :(得分:1)

由于if / else的两个分支都从方法返回,因此for循环只执行一次(即i == 0)。

答案 2 :(得分:0)

我不知道NSLog语句中的任何%i说明符。 Format Specifiers

NSLog(@"DelaysCount %i",i);
NSLog(@" %i",self.mapDelays.count);

所以不应该是

NSLog(@"DelaysCount %d",i);
NSLog(@" %d",self.mapDelays.count);
相关问题