如何根据开关位置限制阵列的负载



我从 plist 和循环类别加载我的注释

NSMutableArray *annotations = [[NSMutableArray alloc]init];
NSString *path = [[NSBundle mainBundle] pathForResource:@"data" ofType:@"plist"];
NSDictionary *dict = [NSDictionary dictionaryWithContentsOfFile:path];
for(path in dict){
NSString *theCategory;
theCategory = [NSString stringWithFormat:@"%@", path];
NSLog(@"%@", path);
NSArray *ann = [dict objectForKey:theCategory];

for(int i = 0; i < [ann count]; i++) {

    NSString *coordinates = [[ann objectAtIndex:i] objectForKey:@"Coordinates"];
    double realLatitude = [[[coordinates componentsSeparatedByString:@","] objectAtIndex:1] doubleValue];
    double realLongitude = [[[coordinates componentsSeparatedByString:@","] objectAtIndex:0] doubleValue];
    MyAnnotation *myAnnotation = [[MyAnnotation alloc] init];
    CLLocationCoordinate2D theCoordinate;
    theCoordinate.latitude = realLatitude;
    theCoordinate.longitude = realLongitude;
    myAnnotation.coordinate=CLLocationCoordinate2DMake(realLatitude,realLongitude);        
    myAnnotation.title = [[ann objectAtIndex:i] objectForKey:@"Name"];
    myAnnotation.subtitle = [[ann objectAtIndex:i] objectForKey:@"Address"];
    myAnnotation.icon = [[ann objectAtIndex:0] objectForKey:@"Icon"];

    [mapView addAnnotation:myAnnotation];
    [annotations addObject:myAnnotation];
}
}   

然后我的设置中有一个开关

- (IBAction)saveSwitch:(id)sender
{
    NSUserDefaults *defs1 = [NSUserDefaults standardUserDefaults];
    [defs1 setBool: blackSwitch.on forKey: @"blackKey"];
    [[NSUserDefaults standardUserDefaults] synchronize];
}

我需要通过此开关限制特定类别注释的显示。如果我循环类别,如何做到这一点?

在第一个循环中,执行以下操作:

for(NSString *category in dict){
    if ([category isEqualToString:@"Whatever"]) {
        //continue?
        NSArray *ann = [dict objectForKey:category];
        BOOL blackKeyStatus = [[NSUserDefaults standardUserDefaults]boolForKey:@"blackKey"];
        if (blackKeyStatus) {
            //switch ON
            //act appropriatelyForOnValue
            //begin Loop 2 here?
        } else {
            //switch OFF
            //act appropriately
        }
    } else {
        //do something else?
    }

如果需要测试特定条件,请执行任何必要的操作来确定是否满足该条件。

最新更新