-1

在我的应用程序中,我有一个从 tableview 获取日期值的 for 循环。我希望如果在 Tableview 中插入相同的日期只考虑一次,而现在如果插入的日期不止一次,则每次都计算。

for (FesteGruppo *festeGruppoEntity in arrayController2_.selectedObjects) {
                if ([festeGruppoEntity.stato intValue]==0) {
                    NSDateComponents *festeGruppoEntityComponents = [[NSCalendar currentCalendar] components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:festeGruppoEntity.data];
                    NSString *nomeFesta =  festeGruppoEntity.nome;

                    NSInteger annoFestaModificato = annoInizio1;
                    NSInteger meseFesta = [festeGruppoEntityComponents month];
                    NSInteger giornoFesta = [festeGruppoEntityComponents day];

                    for (annoInizio1=annoInizio1; annoFestaModificato<=annoFine1; ++annoFestaModificato) {

                        NSDateComponents *components = [[NSDateComponents alloc] init];

                        [components setDay:giornoFesta];
                        [components setMonth:meseFesta];
                        [components setYear:annoFestaModificato];
                        NSCalendar *gregorian = [[NSCalendar alloc]
                                                 initWithCalendarIdentifier:NSGregorianCalendar];
                        NSDate *date = [gregorian dateFromComponents:components];

                        NSString *valorePrimaFesta=[date descriptionWithCalendarFormat:@"%w" timeZone:nil locale:nil];



                        //Festività compresa ripetuta.
                        int compInizio = [dataInizio compare:date];
                        int compFine = [dataFine compare:date];



                        if (compInizio==-1 && compFine==1) {
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];
                        }else if(compInizio==-1 && compFine==0){
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];  
                        }else if(compInizio==-0 && compFine==0){
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]]; 
                        }else if (compInizio==-0 && compFine==1){
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];
                        }
                        else {
                            int giornoSettimana = [valorePrimaFesta intValue];

                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaNonCompresa", @""), nomeFesta, giornoFesta, meseFesta, annoFestaModificato, ggSett]];


                        }
                    }
                } else {

                    NSDateComponents *festeGruppoEntityComponents = [[NSCalendar currentCalendar] components:(NSEraCalendarUnit | NSYearCalendarUnit | NSMonthCalendarUnit | NSDayCalendarUnit) fromDate:festeGruppoEntity.data];
                    NSString *nomeFesta =  festeGruppoEntity.nome;
                    NSInteger annoFesta = [festeGruppoEntityComponents year];
                    NSInteger meseFesta = [festeGruppoEntityComponents month];
                    NSInteger giornoFesta = [festeGruppoEntityComponents day];

                    //for (annoInizio1=annoInizio1; annoFesta<=annoInizio1; ++annoFesta) {

                        NSDateComponents *components = [[NSDateComponents alloc] init];



                        [components setDay:giornoFesta];
                        [components setMonth:meseFesta];
                        [components setYear:annoFesta];
                        NSCalendar *gregorian = [[NSCalendar alloc]
                                                 initWithCalendarIdentifier:NSGregorianCalendar];
                        NSDate *date = [gregorian dateFromComponents:components];

                        NSString *valorePrimaFesta=[date descriptionWithCalendarFormat:@"%w" timeZone:nil locale:nil];
                        //Festività compresa ripetuta.
                        int compInizio = [dataInizio compare:date];
                        int compFine = [dataFine compare:date];

                        if (compInizio==-1 && compFine==1) {
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]];
                        }else if(compInizio==-1 && compFine==0){
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]];  
                        }else if(compInizio==-0 && compFine==0){
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]]; 
                        }else if (compInizio==-0 && compFine==1){
                            int giornoSettimana = [valorePrimaFesta intValue];
                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                --domenica;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                --lunedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                --martedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                --mercoledi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                --giovedi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                --venerdi;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                --sabato;
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]];
                        }
                        else {
                            int giornoSettimana = [valorePrimaFesta intValue];

                            NSString *ggSett = [NSString stringWithFormat:@""];

                            if (giornoSettimana==0) {
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"domenica", @"")];
                            } else if (giornoSettimana==1){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"lunedi", @"")];
                            } else if (giornoSettimana==2){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"martedi", @"")];
                            } else if (giornoSettimana==3){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"mercoledi", @"")];
                            } else if (giornoSettimana==4){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"giovedi", @"")];
                            } else if (giornoSettimana==5){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"venerdi", @"")];
                            } else if (giornoSettimana==6){
                                ggSett = [NSString stringWithFormat:NSLocalizedString(@"sabato", @"")];
                            }

                            [textView1 insertText:[NSString stringWithFormat:NSLocalizedString(@"festaNonCompresaNonRipetuta", @""), nomeFesta, giornoFesta, meseFesta, annoFesta, ggSett]];


                        }
                    //}
                }



            }
4

1 回答 1

0

将表中的所有对象放入NSMutableSet. 然后遍历集合。

于 2012-11-13T10:01:23.623 回答