我是一个新手程序员,在这个问题上我已经挣扎了两个星期。我正在使用cocoapods的JTCalendar。它被设计成在- (BOOL)calendarHaveEvent:(JTCalendar *)calendar date:(NSDate *)date {下返回一个日期,该日期将作为一个点出现在日历上以显示一个事件。为了保存我的事件,我使用以下代码:
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);并尝试获取日期并“返回”该日期:
‘
- (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
我只想有我的单身约会回来,被困在这很长时间。谢谢!
发布于 2015-06-23 05:40:06
for (NSManagedObject *obj in matchingData) {
alarmDate = [obj valueForKey:@"alarmDate"];
return alarmDate;'您总是返回第一个对象的alamrDate,不管您在方法的参数中有什么日期。使用您的参数检查日期,然后返回是否有此日期的警报。
https://stackoverflow.com/questions/30994093
复制相似问题