2012-06-01 83 views
0

我打开我的注解从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]; 
} 

我需要限制显示如何限制阵列的负载这个开关的特定类别的注释。如何循环分类,如何完成?

回答

0

内,您的第一个循环,这样做:

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? 
    } 

如果你需要测试特定条件,采取一切必要措施,以确定是否满足该条件。

+0

我有7个大类和7个开关,我需要限制我的类别由这个开关 –

+0

我改变了基于你讨论类别和有我的回答一个字符串名为“类别” – Justin

+0

它说,“安”是未使用的变量 –