我必须在这里遗漏一些东西。我已经创建了一个柜台后计数器并且它们都可以工作,但是在下面的代码中,计数器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;
}
答案 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);