Ios 计数器保持在零位

Ios 计数器保持在零位,ios,ios6,Ios,Ios6,我一定是遗漏了什么。我创建了一个接一个的计数器,它们都可以工作,但在这个代码中,计数器下方的I始终保持为零。mapDelays计数正确显示18。其思想是将i处的数组值与true或false进行比较。这是从另一个方法调用的,该方法从airports数组(18个airports)绘制管脚。数组中的一项是'delay',true或false。因此,当我绘制机场图时,我想看看是否有“真”的接力,如果有,请将针脚改为红色而不是绿色。是的,我是一个新手,所以任何指针都会有所帮助——特别是,我显然缺少流程和逻

我一定是遗漏了什么。我创建了一个接一个的计数器,它们都可以工作,但在这个代码中,计数器下方的
I
始终保持为零。
mapDelays
计数正确显示18。其思想是将
i
处的数组值与true或false进行比较。这是从另一个方法调用的,该方法从airports数组(18个airports)绘制管脚。数组中的一项是'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;
}
-(MKAnnotationView*)地图视图:(MKMapView*)地图视图注释:
(id)注释
{
if([annotation IsKindof类:[AirportDetails类]]){
静态NSString*常量kPiniIdentifier=@“AirportDetails”;
MKPinAnnotationView*视图=(MKPinAnnotationView*)[mapView出列可重用AnnotationViewWithIdentifier:kPinIdentifier];
如果(!视图){
视图=[[MKPinAnnotationView alloc]initWithAnnotation:annotation重用标识符:kPinIdentifier];
view.canShowCallout=是;
view.calloutOffset=CGPointMake(-5,5);
view.animatesDrop=否;
}
NSLog(“我在这里”);
对于(int i=0;i
我不知道NSLog语句中有任何%I说明符

那不是吗

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

更改代码格式后,我发现在
I
的第一个for循环中,您有
返回视图这将停止for循环。所以你得到了零。下次你应该注意你的编码风格。特别是对于
{}

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

我最初将return视图放在外部,并将其放在那里测试这是否有任何影响?我仍然得到相同的结果,零。仔细检查你的代码并更新你的问题。所以我们可以帮你更多。是的,把{}放错地方了,改变了它,一切都正常,计数,计数!!!非常感谢你能听到这个。有时候你看了很多东西,却错过了!!很难说没有看到程序逻辑,但听起来好像调用方法,也就是你说的plots pins,是需要for循环的方法,因为它需要每个机场的视图。然后调用方将传递一个
i
值,该值将机场与您发布的方法的逻辑相匹配。(也许……我是根据不完整的信息猜的!)好的,我会试试。我明白你的意思。感谢您花时间回复,我非常感谢!
NSLog(@"DelaysCount %d",i);
NSLog(@" %d",self.mapDelays.count);