繁体   English   中英

从核心数据进行循环

For Loop from Core Data

提示:本站收集StackOverFlow近2千万问答,支持中英文搜索,鼠标放在语句上弹窗显示对应的参考中文或英文, 本站还提供   中文繁体   英文版本   中英对照 版本,有任何建议请联系yoyou2525@163.com。

我有一个问题,我有2个数组(日期和描述),一个保留一个从datePicker中选择的日期,另一个是带有字符串的数组,两个数组都从CoreData获取。

-(void)generateLocalNotification {
    CoreDataStack *coreDataStack = [CoreDataStack defaultStack];
    NSFetchRequest *fetchRequest = [NSFetchRequest fetchRequestWithEntityName:@"AddEntrySettings"];
    fetchRequest.resultType = NSDictionaryResultType;
    NSArray *result = [coreDataStack.managedObjectContext executeFetchRequest:fetchRequest error:nil];
    NSMutableArray *date = [result valueForKey:@"date"];
    NSMutableArray *descriere = [result valueForKey:@"descriere"];`

    if (date != nil) {
        for (NSString *stringDate in date) {
            NSDateFormatter *format = [[NSDateFormatter alloc]init];
            [format setDateFormat:@"MM/dd/yyyy h:mm a"];
            [format setTimeZone:[NSTimeZone  timeZoneWithName:@"GMT"]];
            self.date = [format dateFromString:stringDate];
            NSLog(@"LOG:%@",date);
            localNotification.fireDate = [self.date dateByAddingTimeInterval:0];
            localNotification.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];

            for (int i = 0; i < descriere.count; i++) {
                localNotification.alertBody = descriere[i];
            }
            localNotification.applicationIconBadgeNumber = 1;
            localNotification.soundName = UILocalNotificationDefaultSoundName;
            localNotification.userInfo = @{@"id" : @42};

            UIApplication *app = [UIApplication sharedApplication];
            [app scheduleLocalNotification:localNotification];
        }
    }
}

当我尝试fireDate时,一切工作正常,每次当数组中的日期与本地时间匹配时,我都会收到一条通知,直到尝试添加alertBody时,每次为alertBody进行for循环时,它只会显示我的最后一个条目NSArray。 在CoreData中,我同时添加了两个条目。 我的错误在哪里? 我怎样才能每次都收到与我在CoreData中插入的日期相匹配的alertBody通知?

1 个回复

问题是这个for循环:

       for (int i = 0; i < descriere.count; i++) {
            localNotification.alertBody = descriere[i];
        }

对于每个stringDate ,将迭代到您的描述数组中的最后一项。 你需要的是找到指数stringDatedate ,然后找到在同一个索引处的字符串descriere

但是,有一种更简单的方法。 不要将result解包到两个单独的数组中,只需从for循环中访问不同的值即可:

if (result != nil) {
    for (NSDictionary *dict in result) {
        NSString *stringDate = [dict objectForKey:@"date"];
        // if necessary, test whether stringDate is nil here
        NSDateFormatter *format = [[NSDateFormatter alloc]init];
        [format setDateFormat:@"MM/dd/yyyy h:mm a"];
        [format setTimeZone:[NSTimeZone  timeZoneWithName:@"GMT"]];
        self.date = [format dateFromString:stringDate];
        NSLog(@"LOG:%@",date);
        localNotification.fireDate = [self.date dateByAddingTimeInterval:0];
        localNotification.timeZone = [NSTimeZone timeZoneWithName:@"GMT"];

        localNotification.alertBody = [dict objectForKey:@"descriere"];          
        localNotification.applicationIconBadgeNumber = 1;
        localNotification.soundName = UILocalNotificationDefaultSoundName;
        localNotification.userInfo = @{@"id" : @42};

        UIApplication *app = [UIApplication sharedApplication];
        [app scheduleLocalNotification:localNotification];
    }
}
1 用NSPredicate替换For循环进行核心数据调用

我有一个3级嵌套的循环: 这可行。 它足够快,不会降低应用程序的运行速度。 我不喜欢 我非常反对这种嵌套方式。 我很确定我可以使用NSPredicate搜索来做同样的事情。 我的SQL不好,所以我不确定从哪里开始。 Group , Region和Boundary都是C ...

2 关系与核心数据循环

我在核心数据方面遇到了概念上的问题。 我有一个称为OBJ的实体,该实体在关系中具有OBJ实体。 我收到非常有说服力的消息,例如"An error occured." 当我测试模型时 对于每个OBJ实体,我希望定义与另一个OBJ实体关联的一个或多个ACTION。 所以我想我的错误 ...

3 用 for 循环遍历核心数据?

我正在尝试在费用跟踪器应用程序中添加与某个类别匹配的所有费用。 这不会编译。 我应该为这种类型的计算使用 for 循环吗? ...

4 正确的语法循环核心数据NSSet

每当我遍历核心数据关系(NSSet)时,我必须将集合转换为数组: 或者我可以正常循环设置但我必须在使用之前对项目进行类型转换: 我知道这是微不足道的,但我想要做的只是在循环中预先指定NSSet的强制转换而不必进行这些工作吗? 当我尝试这样做时: 我收到一个错误: 表 ...

5 核心数据,循环VS搜索

我在应用程序中使用核心数据,基本上是想知道是否有人对这两个过程中的哪个会更快... 我有一个表视图,当我使用以下命令将所有核心数据类放入数组时,需要将核心数据中的条目与行进行匹配: 我想知道的是,根据我需要检索的ID进行谓词搜索是否更快? 我认为通常需要循环通过的最大项目数约 ...

6 核心数据对象通过循环更新

我有一个tableView显示core-data objects 。 在同一视图上有五个按钮。 每个按钮操作都应更新对象中的属性值。 例如,我将向您展示更新属性“ isDone”所需要执行的操作: 此方法引发以下异常: 我需要如何避免异常并获得所需的更新? 这是我的NSF ...

7 我该如何进行核心数据迁移?

我有一个较旧的核心数据版本, Allows external storage在二进制数据中Allows external storage 。 我创建了一个新的,其中未选中“ Allows external storage 。 当我尝试启动我的应用程序时,出现错误: 未解决的错误 ...

8 如何使用核心数据进行计算

我正在尝试制作一个小程序,该程序可以对按下按钮的次数进行计数。 我正在使用Core Data来存储信息。 唯一的问题是我无法弄清楚如何使用核心数据中的信息进行计算。 如果有人可以告诉我如何使代码中的变量等于核心数据中信息的值,我就足够知道了。 如果我想知道另一种使用核心数据进行计算的方法 ...

10 在UITableView中对核心数据进行多对多排序

我在这里看到了许多有关此问题的信息,但似乎都无法解决我遇到的问题。 我有一个使用核心数据的应用程序。 我正在尝试对连接到NSFetchedResultsController的tableView进行排序,这使该问题比此处的其他帖子更复杂的是,我需要根据用户位置更新排序。 我的情况如下 ...

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2022 STACKOOM.COM