首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >日历事件应用程序的核心数据谓词

日历事件应用程序的核心数据谓词
EN

Stack Overflow用户
提问于 2015-06-23 04:53:58
回答 1查看 247关注 0票数 0

我是一个新手程序员,在这个问题上我已经挣扎了两个星期。我正在使用cocoapods的JTCalendar。它被设计成在- (BOOL)calendarHaveEvent:(JTCalendar *)calendar date:(NSDate *)date {下返回一个日期,该日期将作为一个点出现在日历上以显示一个事件。为了保存我的事件,我使用以下代码:

代码语言:javascript
复制
AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
                 NSManagedObjectContext *context = [appDelegate managedObjectContext];
NSManagedObject *savedate;
                 savedate = [NSEntityDescription insertNewObjectForEntityForName:@"AlarmData" inManagedObjectContext:context];
                 [savedate setValue:CT forKey:@"alarmDate"];

                 [context save:&error];

                BOOL isSaved = [appDelegate.managedObjectContext save:&error];

                 NSLog(@"success!!!!, %@", savedate);

并尝试获取日期并“返回”该日期:

代码语言:javascript
复制
- (BOOL)calendarHaveEvent:(JTCalendar *)calendar date:(NSDate *)date
{
    AppDelegate *appDelegate = [[UIApplication sharedApplication] delegate];
    NSManagedObjectContext *context = [appDelegate managedObjectContext];





    NSDateFormatter *dateFormatter = [[NSDateFormatter alloc] init];
    [dateFormatter setDateFormat:@"dd-MM-yyyy"];
    NSString *textDate = [NSString stringWithFormat:@"%@",[dateFormatter stringFromDate:[NSDate date]]];
    NSLog(@"Date %@",textDate);

     NSDate *startDate = [dateFormatter dateFromString:@"31-12-1981"];
    NSDate *endDate = [dateFormatter dateFromString:@"31-12-2999"];


    NSPredicate *predicate = [NSPredicate predicateWithFormat:@"(alarmDate >= %@) AND (date <= %@)", startDate, endDate];

    NSFetchRequest *request = [[NSFetchRequest alloc] init];
    [request setEntity:[NSEntityDescription entityForName:@"AlarmData" inManagedObjectContext:context]];
    [request setPredicate:predicate];

    NSError *error;
    NSArray *matchingData = [context executeFetchRequest:request error:&error];

        NSString *alarmDate =  [ NSString  stringWithFormat:@"dd-MM-yyyy"];

        for (NSManagedObject *obj in matchingData) {
            alarmDate = [obj valueForKey:@"alarmDate"];

            return alarmDate;'

不幸的是,结果是这样的,每一个约会似乎都会在下面有一个点:

https://drive.google.com/file/d/0Bw0Kf2Z9-yb8Zm5LWnZUUkRJRzQ/view?usp=sharing

我只想有我的单身约会回来,被困在这很长时间。谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-06-23 05:40:06

代码语言:javascript
复制
for (NSManagedObject *obj in matchingData) {
            alarmDate = [obj valueForKey:@"alarmDate"];

            return alarmDate;'

您总是返回第一个对象的alamrDate,不管您在方法的参数中有什么日期。使用您的参数检查日期,然后返回是否有此日期的警报。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/30994093

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档